Skip to content

Commit 62689ac

Browse files
evan-charmworksrbuch
authored andcommitted
CHANGES: add release notes for v6.10.0 (#2208)
1 parent 285012c commit 62689ac

File tree

1 file changed

+142
-0
lines changed

1 file changed

+142
-0
lines changed

CHANGES

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,148 @@
11
This file describes the most significant changes. For more detail, use
22
'git log' on a clone of the charm repository.
33

4+
================================================================================
5+
What's new in Charm++ 6.10.0
6+
================================================================================
7+
8+
This is a feature release, with the following major changes:
9+
10+
Misc:
11+
12+
- Updated the license to clarify the restriction on commercial use of the software
13+
in the academic distribution.
14+
15+
- We have moved away from .tex in favor of .rst files to make building the
16+
documentation more portable. The documentation is now available at
17+
https://charm.readthedocs.io/ .
18+
19+
- We have moved bug/issue tracking from Redmine to GitHub, and code
20+
review from Gerrit to GitHub. Our GitHub repository is at:
21+
https://github.com/UIUC-PPL/charm .
22+
23+
- As a preview feature, Charm++ can now be built with CMake (version 3.11 or higher).
24+
To try it, you can replace your `./build` command with `./buildcmake`, which supports
25+
most of the options of `./build`. The old build system is still available.
26+
Please see https://charm.readthedocs.io/en/latest/charm++/manual.html#installation-with-cmake
27+
for more information.
28+
29+
- Upcoming deprecation notice: The next release of Charm++ will feature a significant overhaul of
30+
the load balancing infrastructure. There will be changes to the process of selecting and using
31+
load balancers, writing custom load balancers, and the internals of the load balancing
32+
infrastructure. Programs that rely on custom load balancers or the internals of the LB
33+
infrastructure will likely require some changes for compatibility.
34+
35+
Known Issues:
36+
37+
- A hang occurs in multiprocess runs in SMP mode with completion detection on GNI builds.
38+
(https://github.com/UIUC-PPL/charm/issues/2508)
39+
40+
- Recent InfiniBand machines crash in SMP builds due to problems in the verbs layer implementation.
41+
Users are recommended to use UCX for the time being if possible.
42+
(https://github.com/UIUC-PPL/charm/issues/2532)
43+
44+
Charm++ Features & Fixes:
45+
46+
- Support for a new Unified Communication X (UCX) networking backend in LRTS,
47+
thanks to Mellanox and Charmworks staff.
48+
49+
- The Zero Copy API now supports broadcast operations, and is used internally
50+
for transmission of large readonly objects during startup.
51+
52+
- Get and put operations, used in the Zero Copy Direct API, now return
53+
CkNcpyStatus::(in)complete for users to check for immediate completion
54+
as opposed to waiting for the completion callback.
55+
56+
- Addition of a new Zero Copy Post API, for avoiding the receive-side message
57+
copy. This can be used in both point-to-point and broadcast operations.
58+
59+
- Defined a new API, CkWithinNodeBroadcast, for broadcasting a message from a Group element
60+
to all other Group elements in the same process or logical node. If the target entry
61+
method is [nokeep], this API avoids making any copies of the message.
62+
63+
- Callbacks to [inline] entry methods are now executed inline by default. Previously,
64+
this was only done when the callback was constructed with an optional parameter.
65+
66+
- Eliminated the need for mainchares in user-driven interop mode by adding a new
67+
split-phase initialization API, fixed a bug in the interop exit sequence, and new
68+
support for using CkCallback::ckExit when using interop.
69+
70+
- Allocate pinned host memory pool for GPUs dynamically on demand, instead of
71+
statically at compilation time.
72+
73+
- Memory copy operations in GPUManager WorkRequest API are reverted to be asynchronous.
74+
75+
- Added an optional parameter for freeing the CkCallback object in GPUManager WorkRequest API.
76+
77+
- Fixed a bug in MetaLB and adding tests for MetaLB.
78+
79+
- Fixed a bug in SDAG's code generation for forall statements with negative steps.
80+
81+
- TRAM and [aggregate] entry methods now support multi-dimensional chare arrays.
82+
83+
- Virtual inheritance from multiple PUPable base classes is now allowed.
84+
85+
- Support for PUPing C++11 random number engines and engine adaptors, as well as for
86+
PUPing templated abstract base classes.
87+
88+
- Section reductions are now optimized for streamable operations.
89+
90+
- Core dump files are now available for --with-production builds.
91+
92+
- Defined a new XI-Builder interface, a library front-end for XLAT-I's code generation.
93+
94+
- Fixes to the perfReport and memory tracemodes as well as record/replay in SMP mode,
95+
and improvements to PAPI-enabled builds.
96+
97+
- Due to being broken since before v6.8, mlog and causalft builds have been removed.
98+
99+
- Added a charmc option "-module-names" which prints the module names in a .ci file,
100+
one module name per line in the output.
101+
102+
- charmrun implements ++no-* for flag-type parameters. For example,
103+
++no-scalable-start. Also fixed use of ++scalable-start and ++batch together.
104+
105+
- Performance measurement programs from the tests and examples directories have been
106+
recategorized into a new "benchmarks" directory.
107+
108+
- Charm++ can now be built with -std=c++17, and all eligible C files in the Charm++
109+
runtime have been transitioned to compile as C++.
110+
111+
- Support for mpi-win-x86_64-gcc builds.
112+
113+
- Various improvements to Charm4Py, such as a new sections implementation, are
114+
described in the charm4py repository on GitHub.
115+
116+
- The CmiAbort and CkAbort functions now support printf-style format strings.
117+
Please make sure to replace '%' with '%%' in the argument string to print a '%'.
118+
119+
Adaptive MPI:
120+
121+
- AMPI now uses Charm++'s Zero Copy API to transfer large messages efficiently using
122+
RDMA and CMA wherever possible and profitable.
123+
124+
- More efficient implementations of MPI_Bcast, all MPI_(I)(all)gather(v) routines,
125+
reductions with non-commutative operations, and user-defined datatype creation.
126+
127+
- Added support for MPI_Win_(Un)lock_all and MPI_Type_match_size.
128+
129+
- Fixes to MPI_Mrecv, MPI_Info_dup, and MPI_BOTTOM error handling.
130+
131+
- Stubs for MPI functions currently unimplemented in AMPI are now provided to allow
132+
more MPI codes to build. These emit -Wdeprecated-declarations diagnostics when used.
133+
134+
- AMPI's mpif.h is now compilable in line-extended fixed format.
135+
136+
- TLSglobals now works on Mac OS.
137+
138+
- Two new global variable privatization methods have been added, Process-in-Process
139+
Globals (pipglobals) and Filesystem Globals (fsglobals).
140+
141+
- AMPI's nm_globals.sh script now works on both Linux and Mac OS and provides
142+
more useful output for identifying writable global/static variables.
143+
144+
- Fixed AMPI's CUDA support, with the AMPI+CUDA example now working as expected.
145+
4146
================================================================================
5147
What's new in Charm++ 6.9.0
6148
================================================================================

0 commit comments

Comments
 (0)