-
Notifications
You must be signed in to change notification settings - Fork 78
/
version-2.4.0
209 lines (149 loc) · 8.77 KB
/
version-2.4.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
*****************************************************************************
Copyright 1997-2022
Lawrence Livermore National Security, LLC.
All rights reserved.
*****************************************************************************
Release Notes for SAMRAI v2.4.0
(notes for previous releases may be found in /SAMRAI/docs/release)
*****************************************************************************
NOTE: These release notes are more descriptive and detailed than is usual
for software release notes. The reason for this is that presently
complete documentation does not exist for most of the items listed.
Until sufficient user documentation becomes available, descriptions
such as those that follow will be part of SAMRAI release notes.
Please direct any questions related to these notes to the SAMRAI development
team by sending email to samrai@llnl.gov.
LLNL users can use the discussion groups on the LLNL Sourceforge site:
https://sourceforge.llnl.gov/sf/discussion/do/listForums/projects.samrai/discussion
*****************************************************************************
Where to report Bugs
--------------------
If a bug is found in the SAMRAI library, we ask that you kindly report it
to us so that we may fix it. We will make every effort to fix bugs
in a timely manner. Depending on the severity or the complexity of the
bug, we will either fix the bug for a subsequent library release or send
a code fix to users so that their work is minimally interrupted.
LLNL users may report bugs using the LLNL Sourceforge site if
you have a sourceforge account:
https://sourceforge.llnl.gov/sf/tracker/do/listTrackers/projects.samrai/tracker
Bugs found by other users should send email to samrai-bugs@llnl.gov.
*****************************************************************************
----------------------------------------------------------------------------
Summary of what's new
-----------------------------------------------------------------------------
This section contains a summary of additions to SAMRAI. More detailed
descriptions of items in the following list are provided below.
(1) 'allow_patches_smaller_than_minimum_size_to_prevent_overlaps' flag added
to GriddingAlgorithm.
(2) 'check_overlapping_patches' flag added to GriddingAlgorithm.
-----------------------------------------------------------------------------
Summary of what's changed
-----------------------------------------------------------------------------
This section contains a summary of changes to SAMRAI. More detailed
descriptions of items in the following list are provided below.
(1) Improved support for implicit template instantiation
(2) Added support for current HDF releases.
(3) Removed fixed number of timers and statistics.
(4) IndexData underwent a significant rewrite.
(5) Configure scripts improved.
(6) 'resolve_nonnesting_tags' input flag in GriddingAlgorithm changed.
(7) extra behavior of 'allow_patches_smaller_than_ghostwidth" flag in
GriddingAlgorithm removed.
*****************************************************************************
-----------------------------------------------------------------------------
Details about what's new
-----------------------------------------------------------------------------
(1) 'allow_patches_smaller_than_minimum_size_to_prevent_overlaps' flag added
to GriddingAlgorithm.
When this flag is set to false, the default value, patches created for a
new level are grown to enforce the minimum patch size. This sometimes causes
there to be patches on a level that overlap in index space. For users who
want to prevent this kind of overlap, this flag should be set to true. Users
who used the flag 'allow_patches_smaller_than_ghostwidth' to prevent overlaps
should now use this flag instead.
(2) 'check_overlapping_patches' flag added to GriddingAlgorithm.
This flag can cause the checking of a newly-created level for any overlapping
patches. The user can select 'i' (ignore), the default value, to skip the
check completely, 'w' (warn) to check for overlapping patches and output a
warning if any exist, or 'e' (error) to stop the run with an error if any
exist. The check can be expensive, so the 'w' and 'e' options are
recommended only for debugging in applications that need to prevent overlaps.
-----------------------------------------------------------------------------
Details about what's changed
-----------------------------------------------------------------------------
(1) Improved support for implicit template instantiation
Previous releases of SAMRAI had a configure option to optionally use
an implicit instantiation model when compiling via the
--enable-implicit-template-instantiation
flag. The support was incomplete as SAMRAI compiled files with
explicit instantiated statements for all the templates. Thus the
library was much larger than strictly necessary. With implicit
compilation the compiler is responsible for doing the instantiations
so SAMRAI's manual explicit statements are redundant.
The make system was changed so that when the implicit compilation mode
is used the explicit instantiation statements are bypassed (basically
the "templates" directories are ignored).
This results in dramatic smaller SAMRAI libraries and reduced build
times for the library. Note that with implicit template instantiation
there is a potential for increased application compilation times
(since the templates are built when the application needs them by the
compiler).
In testing the SAMRAI team has found that some platforms/compilers
actually achieve better overall compilation times with the implicit
mode. On a local IBM PowerPC machine using XLC we have observed a 50%
reduction in building the example codes. When using GCC on a desktop
machine the application compile times increased by a factor of 3 when
using the implicit compilation mode.
(2) Added support for current HDF releases.
HDF versions 1.8.x changed the API. The SAMRAI HDF classes now
support the 1.6.x and 1.8.x API's. Most of the testing and running is
currently still done with HDF 1.6.x
(3) Removed fixed number of timers and statistics.
Previous versions allocated a fixed number of timers and statistics.
This limitation was removed and the TimerManager and Statistician
singletons can handle any number of timers (subject to memory
limitations).
The API for SAMRAIManager was changed to remove the following methods
(which are no longer needed):
getMaxNumberTimers();
setMaxNumberTimers(int maxnum);
getMaxNumberStatistics();
setMaxNumberStatistics(int maxnum);
(4) IndexData underwent a significant rewrite.
IndexData, IndexVariable, and IndexDataFactory types are now have a
template parameter for the BoxGeometry being used. Previously
IndexData was hard-coded for cell centered data only. To recreate old
behavior simply add pdat::CellGeometry<DIM> to the template
parameters list.
The performance of IndexData for several operations was improved.
Removal of items was particularly poor requiring an O(N) where N is
number of items stored. These were fixed to be O(1). Other
operations were also optimized to improve performance by a
factor of 2-3.
The API was extended to include new methods for insertion of items
that will improve performance in specific use cases. See
documentation for IndexData replaceAddItem and addItemPointer for
additional information.
(5) Configure scripts improved.
The autoconf configure scripts were improved, primarily in adding
better Fortran name mangling support.
(6) 'resolve_nonnesting_tags' input flag in GriddingAlgorithm changed
The input flag 'resolve_nonnesting_tags' in GriddingAlgorithm has been
changed to 'check_nonrefined_tags'. If the tagging operation creates a tag
that violates the nesting requirements, its location in index space
will not be refined when creating a finer level. This flag allows the
user to determine what to do when this occurs, whether to ignore the tag
completely, output a warning, or stop execution of the run with an error
message.
(7) extra behavior of 'allow_patches_smaller_than_ghostwidth" flag in
GriddingAlgorithm removed.
Previously, this flag, when set to true, allowed the minimum patch size to
be smaller than the maximum ghost width of the problem, and it also
suppressed the strict enforcement of the minimum patch size. Now, it only
has the first effect, allowing a user to specify a minimum patch size
smaller than the maximum ghost width. Users who used this flag to prevent
patches on a level from overlapping should no use the flag
'allow_patches_smaller_than_minimum_size_to_prevent_overlaps'. (See "What's
New".)
=============================================================================
=============================================================================