The Easter Christmas Release (this one is somewhat late).
Python:
- We are excited to introduce the SimGrid/S4U interface to your neighborhood
- Not complete yet: asynchronous activities (amongst others) are still missing
- Still ongoing: the interface may change in the future. We need more
testers! Please report any glitches.
- No new project using Java should start now. Please switch to Python.
General:
- Some of the internal cleanups may lead to speed improvements:
- The hard limitation on the amount of simulated actors with
Java+Mac was removed. Now, the available memory is the only limit.
- Our refcounting was tidyied, leading to 10% speedups in some cases.
- We are still working on making our code robust to the actor kills
and hosts' churn. Things are improving, but it's not perfect yet.
- Replaced our own code to display a backtrace (that was forking addr2line)
with the Boost.Stacktrace library.
You won't see your backtraces without this optional dependency.
- Bump cmake dependency to 3.5 (provided by Ubuntu 16.04).
- Stop setting random seed with srand() at initialization.
XML
- In <host> and <peer>, 'availability_file' is now 'speed_file'.
XML file version remains 4.2 since old files are still compatible.
Java:
- Process termination which was broken at version 3.21 has been repaired.
- Expose host load plugin: loadInit, getCurrentLoad, getComputedFlops, getAvgLoad
- Hide the examples into examples/deprecated. New users should use Python.
MSG:
- Drop MSG_process_create_from_stdfunc() from the API.
This C++ function was a pimple in the C API, made necessary at some
point by the Java bindings. This is fixed now.
- Hide the examples into examples/deprecated. New users should use S4U.
- MSG_process_create and MSG_process_attach now crash if the host used
to run this process is off.
- Fix the protype of MSG_process_on_exit()
Now use (int,void*) callbacks instead of (void*,void*) ones.
The implementation was ways too messy to actually work, I guess.
SMPI:
- Change the way SMPI_SAMPLE_* macros work to avoid invalidating cache
too often and provide more accurate timings.
- Add -gdb, -lldb, and -vgdb shortcuts to help debug MPI codes with smpirun
- MPI_Alltoallw support
- Partial MPI nonblocking collectives implementation: MPI_Ibcast, MPI_Ibarrier,
MPI_Iallgather, MPI_Iallgatherv, MPI_Ialltoall, MPI_Ialltoallv, MPI_Igather,
MPI_Igatherv, MPI_Iscatter, MPI_Iscatterv, MPI_Ialltoallw.
- MPI_Request_get_status, MPI_Status_set_cancelled, MPI_Status_set_elements
support
- Basic implementation of generalized requests (SMPI doesn't
allow MPI_THREAD_MULTIPLE) : MPI_Grequest_complete, MPI_Grequest_start
XBT:
- Drop sg_cmdline. Please use xbt_cmdline instead.
- Drop the C xbt_os_mutex_t; Use the C++11 std::mutex.
- Drop the C xbt_os_sem_t; Use the C++ xbt::OsSemaphore.
OsSemaphore is implemented in a portable way with C++11 threads.
This should allow much more threads to be created at the same time,
allowing Mac and Java users to simulate many more actors.
- Implement the 'thread' factory with std::thread instead of xbt ones.
It is not possible to set the stack size with threads anymore, but
-fsplit-stack is the way to go nowadays when using threads.
- Drop the xbt_os_thread_t module (now unused)
- Drop xbt_ex_display(), use simgrid::xbt::log_exception() instead.
- Drop xbt_str_join_array().
- Drop cunit, use Catch2 instead.
Kernel:
- Many cleanups in the kernel::activity namespace. This was long
overdue, and shall open the path to many future endeavors.
Fixed bugs:
- 132: Java: a process can not shut down its own host
- 220: S4U: detached send causes exception if sender terminates soon after sending
- 261: Document the parameters of parallel execution's constructor
- 300: [s4u] BarrierPtr is missing
- 314: SMPI args internal cleanup
- 316: Fix a bug related to the CPU utilization of multi-core VM
- 318: Invalid trace file when using option --cfg=tracing/smpi/display-sizes:yes
- 324: S4U: Attempting to create an actor on turned off host segfaults instead of throwing
- 325: Turning off a host has different behavior on sleeping actors and computing actors
----------------------------------------------------------------------------