source: CIVL/examples/xsbench/CHANGES

main
Last change on this file was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5704 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 7.0 KB
Line 
1=====================================================================
2NEW IN VERSION 13
3=====================================================================
4- (Feature) Added in the ability for XSBench to write out a binary
5 file containing a randomized XS dataset. The code is also capable
6 of reading in this file instead of generating a new XS dataset
7 each time the program is run. This feature may be useful for those
8 running in simulation environments where walltime minimization
9 is key for logistical reasons.
10
11- Minor refactoring/reorganization of code to make the code clearer
12 and easier to read. After many updates, the code had become a
13 little bloated and difficult to read, so a cleanup was in order.
14
15- Removed synthetic delay injection (via dummy FLOPS or loads).
16 These were not very useful or accurate and had not been used by
17 anyone after the initial analyses were done with them. As they were
18 definitely adding to the code bloat of the program, they were
19 removed.
20
21=====================================================================
22NEW IN VERSION 12
23=====================================================================
24- (Bugfix) The XL and XXL runtime options didn't work correctly.
25 The unionized energy grid overflowed the bounds of normal 4 byte
26 integers, and actually required use of 8 byte integers.
27
28 The variables "n_isotopes" and "n_gridpoints" have been refactored
29 to 8 byte long integers. All variables that use n_isotopes and
30 n_gridpoints as input have also been refactored to 8 byte longs.
31
32 Note that a simple "patch" from version 11 to version 12 can be
33 manually done by simply changing line 73 of GridInit.c to be a
34 long instead of an int. The more thorough refactoring done in v12
35 is done to "future proof" the code.
36
37=====================================================================
38NEW IN VERSION 11
39=====================================================================
40
41- Updated & greatly improved the PAPI capability of XSBench. Now
42 events can be tallied during multi-core. See README for more
43 info.
44
45- Added in option for thread sleep pause in between macro XS lookups.
46 Very similar to adding dummy flops, but a little cleaner.
47
48 With as small as a 0.1 ms sleep, we get linear scaling with threads.
49 While this initially appears to confirm our initial suspicions
50 regarding memory contention / latency problems, I think the delays
51 resulting from the sleeps could potentially just be washing out
52 the scaling numbers. Even with just 0.1, over 15 million lookups,
53 the majority of the runtime (>90%) is just sleep, so scaling numbers
54 aren't very expressive anymore. Need to implement timers that
55 ignore the sleep parts.
56
57- Specified OpenMP schedule mode as 'dynamic'. This is the default
58 on most systems, but now it's set explicitly since it's a lot
59 faster than 'static' or other modes.
60
61- Added in a "benchmarking" mode, which will attempt all possible
62 thread combinations between 1 <= nthreads <= max_threads.
63 This helps to save considerable benchmarking time, as the
64 data structures can be re-used between runs rather than regenerated
65 each time. Benchmarking mode is enabled in the makefile.
66
67=====================================================================
68NEW IN VERSION 10
69=====================================================================
70
71- Changed verification mode to be more portable. The verification
72strategy introduced in version 9 had discrepancies on different
73platforms and compilers. This was due to reliance on the compiler
74provided rand() function producing a different series of random
75numbers than other implementations. Also, there were some issues
76with the associativity of floating point arithmetic. These issues
77have now all been solved, and the verification hash is consistent
78across all tested platforms.
79
80- Revised "XL" size parameters, as well as adding in an "XXL" size
81option. The XL size now uses 120GB of XS data. The XXL mode uses
82252GN of XS data. More details are in the verification section of the
83readme.
84
85=====================================================================
86NEW IN VERSION 9
87=====================================================================
88
89- Added in new code verification mode. This can be toggled on in
90the makefile. When code is compiled and run, a hash of the results
91will be generated which can then be compared to other versions and
92configurations of XSBench. See readme for more details.
93
94- Moved PAPI def to makefile. Makes it easier to toggle.
95
96- Added -l command line option to set the number of cross section
97lookups performed by XSBench.
98
99=====================================================================
100NEW IN VERSION 8
101=====================================================================
102
103- Simplified command line interface (CLI) read in process. XSBench
104now supports a more traditional CLI, as follows:
105
106Usage: ./XSBench <options>
107Options include:
108 -n <threads> Number of OpenMP threads to run
109 -s <size> Size of H-M Benchmark to run (small, large, XL)
110 -g <gridpoints> Number of gridpoints per isotope
111 Default is equivalent to: -s large
112
113- Updated README with new CLI usage details.
114
115- Fixed several typos in the XSBench Theory PDF.
116
117=====================================================================
118NEW IN VERSION 7
119=====================================================================
120
121- Added MPI support. Multithreaded run executes on all ranks.
122 Problem size or data is not subdivided - the exact same problem
123 is solved in parallel by all ranks. Only MPI communication is
124 a single reduce at the end to aggregate timing data.
125
126 To enable MPi mode, simply change the MPI flag in the makefile
127 to "MPI = yes". Make sure mpicc is available on your system.
128
129- Added in "XL" size option for a giant 277 GB energy grid. This
130 is unlikely to fit on a single node, but is useful for
131 experimentation purposes.
132
133- Removed "BGQ mode" CLI argument option, as it wasn't being used
134 by anything in the code anymore.
135
136=====================================================================
137NEW IN VERSION 6
138=====================================================================
139
140- Fixed small bug in calculate_micro_xs() function. Occasionally,
141 the index returned would be the last nuclidegridpoint for that
142 nuclide, causing the "high" energy point to be off the end of the
143 grid (likely into the next nuclide's energy grid). Added a check
144 to correct for when this occurs.
145
146 Note that this bug did not affect performance - only made the
147 calculation of XS's more "correct".
148
149=====================================================================
150NEW IN VERSION 5
151=====================================================================
152
153- Added ChangeLog
154
155- Moved source code files to src/ directory.
156
157- Updated README.txt file to enhance documentation
158
159- Added significant documentation with regards to theory
160 in the docs/XSBench_Theory.pdf file. The README.txt file is now
161 more of a quick-start & users guide, whereas the XSBench_Theory.pdf
162 guide covers the details and theory behind the code.
163
164=====================================================================
Note: See TracBrowser for help on using the repository browser.