Augustin Degomme [Mon, 3 Nov 2014 13:04:13 +0000 (14:04 +0100)]
Add MPI_Info_* support.
This adds MPI_Info_create, MPI_Info_free, MPI_Info_get, MPI_Info_dup, MPI_Info_delete, MPI_Info_get_nkeys, MPI_Info_get_nthkey, MPI_Info_get_valuelen functions.
This is just basically a xbt dict wrapper.
We may have issues with the get_nthkey, as the xbt dict does not really keep the order.. but this mpi call is hum ... stupid? aniway.
Gabriel Corona [Mon, 3 Nov 2014 12:36:21 +0000 (13:36 +0100)]
[mc] Fix the previous stack-cleaning optimisation
Gabriel Corona [Mon, 3 Nov 2014 12:04:18 +0000 (13:04 +0100)]
[mc] Do nto clean the main stack
We only need to clean the stacks of the application processes.
Otherwise, we spend a *lot* of time cleaniong the stack in the MC code
which slows SimGridMC a lot and is useless anyway.
The way we check if we need to clean the stack is currently quite
haskish and could be improved.
Gabriel Corona [Tue, 7 Oct 2014 09:26:45 +0000 (11:26 +0200)]
[mc] Add stack-cleaning compiler wrappers
This compiler wrappers clear each satck frame before using it in order
to avoid issues with unitialized variables in SimGridMC state
comparison.
Compiling with those compiler is much slower.
Martin Quinson [Mon, 3 Nov 2014 00:45:55 +0000 (01:45 +0100)]
Remove some most simcall HEADERs
Martin Quinson [Sun, 2 Nov 2014 23:42:58 +0000 (00:42 +0100)]
[popping] allow to omit the handler
simcalls handlers are good to get extra arguments from the simcall
(such as the issuer) or to check the parameters, but when there is no
such thing to do, they just load the picture for nothing.
Martin Quinson [Sun, 2 Nov 2014 23:05:23 +0000 (00:05 +0100)]
document my recent changes in simix
Martin Quinson [Sun, 2 Nov 2014 22:58:33 +0000 (23:58 +0100)]
rename smx_action_t to smx_synchro_t
This is an old idea, that I want to implement since at least 3 years.
It removes an ambiguity with surf_action_t, and makes it explicit that
these things are a way to synchronize the processes with their
environment.
Martin Quinson [Sun, 2 Nov 2014 17:57:44 +0000 (18:57 +0100)]
better handling of blocking simcalls in the generated popping
Blocking simcalls were marked as simcalls returning void. Being
explicit helps in that obscure part of the code.
Martin Quinson [Sun, 2 Nov 2014 01:34:04 +0000 (02:34 +0100)]
some more cosmetics in the popping generator
Martin Quinson [Sun, 2 Nov 2014 01:23:31 +0000 (02:23 +0100)]
Generate automatically the simcall_HANDLER_* prototypes
- Writing this code manually was burdensome
- This allows to check that the definition in simcall.in actually
match the handler prototype (safer as we are casting wildly)
- This allows to detect (and destroy) some now unused simcalls
Martin Quinson [Sun, 2 Nov 2014 00:33:54 +0000 (01:33 +0100)]
kill dead code
Martin Quinson [Sun, 2 Nov 2014 00:32:06 +0000 (01:32 +0100)]
[popping] cosmetics in doc and generator
Martin Quinson [Sun, 2 Nov 2014 00:18:26 +0000 (01:18 +0100)]
rename all SIMIX_pre_* to simcall_HANDLER_*
This is consistant with simcall_BODY_*, and more explicit
Martin Quinson [Sun, 2 Nov 2014 00:03:04 +0000 (01:03 +0100)]
Rename smx_user to libsmx (to mimick libc/smx)
Martin Quinson [Sat, 1 Nov 2014 23:39:08 +0000 (00:39 +0100)]
finish the s/smurf/popping/ renaming
Actually, that strange dance is called Popping in English and Smurf
only in French :)
Martin Quinson [Sat, 1 Nov 2014 23:30:34 +0000 (00:30 +0100)]
improve a bit the documentation of popping, and align code with doc
Martin Quinson [Sat, 1 Nov 2014 23:11:00 +0000 (00:11 +0100)]
make smx_popping_bodies.c parsable by eclipse (kinda)
Martin Quinson [Sat, 1 Nov 2014 23:02:41 +0000 (00:02 +0100)]
cosmetics in the popping generator
Martin Quinson [Sat, 1 Nov 2014 22:57:30 +0000 (23:57 +0100)]
typo
Martin Quinson [Sat, 1 Nov 2014 22:37:46 +0000 (23:37 +0100)]
kill dead code
Martin Quinson [Sat, 1 Nov 2014 22:28:24 +0000 (23:28 +0100)]
further simplification of the popping in simix
Martin Quinson [Sat, 1 Nov 2014 21:25:06 +0000 (22:25 +0100)]
Remove the 'TUTORIAL: New API' chunks
This loads the code, and I'm not sure that it is of any help,
actually. Adding a new API is rather uncommon, and the existing ones
are clean enough to serve as an example, nowadays.
Martin Quinson [Sat, 1 Nov 2014 21:14:30 +0000 (22:14 +0100)]
rename a generated file involved in the kernel popping
Martin Quinson [Sat, 1 Nov 2014 20:52:42 +0000 (21:52 +0100)]
kill dead code
Gabriel Corona [Fri, 31 Oct 2014 15:09:04 +0000 (16:09 +0100)]
[mc] Split config code into mc_config.c
Gabriel Corona [Fri, 31 Oct 2014 12:37:45 +0000 (13:37 +0100)]
[mc] Make MC_resolve_subtype() and MC_resolve_subtype() static functions of mc_dwarf.c
Those functions belong to the mc_dwarf.c layer and are only used there
anyway. Move them here, mark them as static in order to reduce the
number of exported symbols and reduce the cross-layers dependencies.
degomme [Fri, 31 Oct 2014 10:36:40 +0000 (11:36 +0100)]
small correction
degomme [Fri, 31 Oct 2014 10:28:09 +0000 (11:28 +0100)]
provide user-friendly errors when replay encounters a badly formatted line.
Avoids segfaults in this case
degomme [Thu, 30 Oct 2014 16:58:20 +0000 (17:58 +0100)]
Somehow .. we forgot to replay allgather.
degomme [Thu, 30 Oct 2014 16:58:00 +0000 (17:58 +0100)]
root should be optional for gather replay (as it is everywhere else)
degomme [Thu, 30 Oct 2014 15:23:10 +0000 (16:23 +0100)]
Add tracing for RMA calls
degomme [Thu, 30 Oct 2014 14:56:48 +0000 (15:56 +0100)]
previous commit was a mistake. Handle the case more gracefully.
Augustin Degomme [Thu, 30 Oct 2014 13:48:55 +0000 (14:48 +0100)]
don't push null request back in the dynar
Augustin Degomme [Wed, 29 Oct 2014 16:17:44 +0000 (17:17 +0100)]
we should not set error flag when wait or test is called with a null request.
This is explicitly allowed by the standard.
Augustin Degomme [Wed, 29 Oct 2014 15:48:24 +0000 (16:48 +0100)]
avoid code duplication that lead to out-of-date fortran mpi_init_thread
Gabriel Corona [Thu, 30 Oct 2014 11:30:33 +0000 (12:30 +0100)]
[mc] Document/simplify MC_request_is_enabled()
Gabriel Corona [Thu, 30 Oct 2014 09:59:26 +0000 (10:59 +0100)]
[mc] Simplify mc_update_comm_pattern
Gabriel Corona [Tue, 28 Oct 2014 15:40:31 +0000 (16:40 +0100)]
[mc] DRY with mc_update_comm_pattern() (broken)
Gabriel Corona [Tue, 28 Oct 2014 15:30:06 +0000 (16:30 +0100)]
[mc] DRY by adding get_call_type()
Gabriel Corona [Tue, 28 Oct 2014 13:53:07 +0000 (14:53 +0100)]
[mc] Try to DRY in MC main loops
degomme [Wed, 29 Oct 2014 14:08:13 +0000 (15:08 +0100)]
add a (unused) fortran datatype for compilation of recent bigdft
degomme [Wed, 29 Oct 2014 10:17:08 +0000 (11:17 +0100)]
somehow we forgot MPI_REAL datatype C-fortran compatibility
etortilopez [Wed, 22 Oct 2014 13:46:28 +0000 (15:46 +0200)]
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
etortilopez [Wed, 22 Oct 2014 13:46:20 +0000 (15:46 +0200)]
using walltimer in adaptive algorithm
Augustin Degomme [Tue, 21 Oct 2014 12:27:28 +0000 (14:27 +0200)]
doc update
Augustin Degomme [Tue, 21 Oct 2014 12:21:15 +0000 (14:21 +0200)]
Apply patch suggested by fabien Chaix. This avoids issues with reqq being deleted in replay waitall
This also removes the MPI barrier in replay finalize, which was not needed anymore
Augustin Degomme [Fri, 17 Oct 2014 13:07:21 +0000 (15:07 +0200)]
Loooong due Changelog update
Augustin Degomme [Fri, 17 Oct 2014 11:29:08 +0000 (13:29 +0200)]
Add option to configure the factors used for IB model
Gabriel Corona [Fri, 17 Oct 2014 12:50:21 +0000 (14:50 +0200)]
[smpi+mc] When restoring a snapshot, always remap the SMPI privatisation segment
After restoring the global variables in a snapshot, the global
variable containing the currently active SMPI privatization segment is
overwritten. As a consequence, the segment SMPI thinks active might be
inconsistent with the currently active segment (which the kernels
knows about).
In this case, we want to remap the segment regardless of what SMPI
thinks.
We might be more clever to avoid unecessary segment switch if the
segment which is really mapped is the same as the one we want.
Augustin Degomme [Thu, 16 Oct 2014 14:02:09 +0000 (16:02 +0200)]
really fix dist
Augustin Degomme [Thu, 16 Oct 2014 13:55:09 +0000 (15:55 +0200)]
fix dist
Augustin Degomme [Thu, 16 Oct 2014 13:50:09 +0000 (15:50 +0200)]
Change verbosity of debug messages
Augustin Degomme [Thu, 16 Oct 2014 11:35:26 +0000 (13:35 +0200)]
Add a new Infiniband network model, based on the works of Jerome Vienne.
This computes penalties on communications to account for the slowdowns experimented on real systems, and modeled by jerome
check http://mescal.imag.fr/membres/jean-marc.vincent/index.html/PhD/Vienne.pdf for details
known issue: doesn't work yet with permanent receive mode, as some surf actions are not released properly
Augustin Degomme [Tue, 14 Oct 2014 12:24:22 +0000 (14:24 +0200)]
Add a safe version of lmm_get_var_from_cnst to avoid looping forever when iterating on a dynar we reorder dynamically
Gabriel Corona [Thu, 16 Oct 2014 12:59:46 +0000 (14:59 +0200)]
Remove irrelevant API documentation
Martin Quinson [Wed, 15 Oct 2014 15:26:29 +0000 (17:26 +0200)]
disable clang on travis
Martin Quinson [Wed, 15 Oct 2014 15:16:46 +0000 (17:16 +0200)]
don't test if we cant build
Martin Quinson [Wed, 15 Oct 2014 15:13:58 +0000 (17:13 +0200)]
because we need noise on IRC
Martin Quinson [Wed, 15 Oct 2014 15:00:53 +0000 (17:00 +0200)]
add a little link to travis status from the README
Martin Quinson [Wed, 15 Oct 2014 14:58:40 +0000 (16:58 +0200)]
sharing config between travis and jenkins seems non-trivial
Martin Quinson [Wed, 15 Oct 2014 14:16:20 +0000 (16:16 +0200)]
tell travis which config to test
Martin Quinson [Wed, 15 Oct 2014 14:08:56 +0000 (16:08 +0200)]
we need doxygen, and I fail to see who's creating the VERSION file
Martin Quinson [Wed, 15 Oct 2014 14:00:12 +0000 (16:00 +0200)]
try to use the jenkins on travis too
Martin Quinson [Wed, 15 Oct 2014 13:55:21 +0000 (15:55 +0200)]
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
Martin Quinson [Wed, 15 Oct 2014 13:55:11 +0000 (15:55 +0200)]
I'm not sure of why flexml generated a different flex file, but the content seems ok too
Martin Quinson [Wed, 15 Oct 2014 13:43:33 +0000 (15:43 +0200)]
test if I can write a little travis config file
etortilopez [Mon, 13 Oct 2014 14:10:22 +0000 (16:10 +0200)]
better estimate of window for adaptive algorithm
Lucas Mello Schnorr [Mon, 13 Oct 2014 10:59:24 +0000 (07:59 -0300)]
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
Lucas Mello Schnorr [Mon, 13 Oct 2014 10:59:05 +0000 (07:59 -0300)]
PJ_value_get assumes value exists, this is not the case here so fix it
Hard-coded colors:
- see comments in the code
Gabriel Corona [Mon, 13 Oct 2014 09:55:31 +0000 (11:55 +0200)]
[mmalloc] Expand the junkarea
In some cases (Fortran + Clang compilation) this is needed. We nee to
fix this more cleanly.
Gabriel Corona [Mon, 13 Oct 2014 09:37:45 +0000 (11:37 +0200)]
[mc] Add support for DW_OP_regN locaitions from DW_AT_frame_base
Fix DWARF based introspecion support when compiling with LLVM.
Gabriel Corona [Mon, 13 Oct 2014 09:13:15 +0000 (11:13 +0200)]
[mc] Prepare support for register location in DWARF location expression evaluation code
This is needed in order to support this:
DW_AT_frame_base : 1 byte block: 56 (DW_OP_reg6 (rbp))
Gabriel Corona [Mon, 13 Oct 2014 08:08:36 +0000 (10:08 +0200)]
[mmalloc] Fix junkarea handling in free
The call free(junkarea) was broken and was trying to delegate to
mmalloc instead of using junkarea.
Because of this libsimgrid broken when compiling with LLVM with
mmalloc support.
Martin Quinson [Sat, 11 Oct 2014 22:17:13 +0000 (00:17 +0200)]
try to simplify the way simcalls are generated
Martin Quinson [Sat, 11 Oct 2014 21:02:09 +0000 (23:02 +0200)]
kill dead code
Martin Quinson [Sat, 11 Oct 2014 20:59:04 +0000 (22:59 +0200)]
ask swig to please doxygen. Tools will drive me nuts
Martin Quinson [Sat, 11 Oct 2014 20:54:27 +0000 (22:54 +0200)]
ignore more cruft
Martin Quinson [Sat, 11 Oct 2014 20:47:30 +0000 (22:47 +0200)]
rename SIMIX_simcall_{pre,post} to SIMIX_simcall_{enter,exit}
Martin Quinson [Sat, 11 Oct 2014 20:04:34 +0000 (22:04 +0200)]
ensure that the generated files are autonomous and not included within another file
Martin Quinson [Sat, 11 Oct 2014 20:02:34 +0000 (22:02 +0200)]
please doxygen keep calm
Martin Quinson [Thu, 9 Oct 2014 23:15:32 +0000 (01:15 +0200)]
that file was seriously outdated
Martin Quinson [Thu, 9 Oct 2014 23:08:53 +0000 (01:08 +0200)]
make my previous commit also compile under MC (sorry)
Martin Quinson [Thu, 9 Oct 2014 22:54:02 +0000 (00:54 +0200)]
our usage of doxygen is improvable
Martin Quinson [Thu, 9 Oct 2014 22:34:10 +0000 (00:34 +0200)]
use an automatic table of contents instead of a manual one
Martin Quinson [Thu, 9 Oct 2014 22:30:45 +0000 (00:30 +0200)]
Make it much easier to follow control flow through simix
One of the main difficulty in navigating the source code when debuging
was to find your way from MSG to SURF, through SIMIX. The simcall
mechanism really breaks the flow.
The solution is to add a dummy call to the simcall body, such as:
if (0) SIMIX_pre_host_off(&self->simcall, host);
With the "if (0)", it will be cut at compilation and have no impact on
the code behavior. But you can go to that function in eclipse, press
F3 and you are within the kernel now. No need to grep your way around.
Martin Quinson [Thu, 9 Oct 2014 22:27:41 +0000 (00:27 +0200)]
ok eclipse, change your config file yourself, you're big enough
Martin Quinson [Thu, 9 Oct 2014 22:27:13 +0000 (00:27 +0200)]
ignore more cruft
Martin Quinson [Thu, 9 Oct 2014 21:29:50 +0000 (23:29 +0200)]
try to have valid chunks in generated files to please eclipse
Martin Quinson [Thu, 9 Oct 2014 21:07:29 +0000 (23:07 +0200)]
Allow to recreate VMs in a better way (I guess)
Instead of removing the VM from the host_lib (and potentially create
issues at the routing level), test whether it exists in the VM layer
before whining that we cannot redo it.
Martin Quinson [Thu, 9 Oct 2014 19:59:19 +0000 (21:59 +0200)]
Remove VMs from the lib of existing hosts so that they can be recreated
Martin Quinson [Thu, 9 Oct 2014 19:26:07 +0000 (21:26 +0200)]
add parenthesis to shut up a useless warning
Adrien Lebre [Thu, 9 Oct 2014 16:31:29 +0000 (18:31 +0200)]
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
Adrien Lebre [Thu, 9 Oct 2014 16:31:26 +0000 (18:31 +0200)]
one more test for the migration - adrien
Martin Quinson [Thu, 9 Oct 2014 15:59:08 +0000 (17:59 +0200)]
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
Conflicts:
src/bindings/java/smx_context_java.c
Adrien Lebre [Thu, 9 Oct 2014 15:49:41 +0000 (17:49 +0200)]
fix msg_host_is_avai... in msg_host_is_on - adrien
Adrien Lebre [Thu, 9 Oct 2014 15:45:00 +0000 (17:45 +0200)]
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
Adrien Lebre [Thu, 9 Oct 2014 15:44:52 +0000 (17:44 +0200)]
make msg_vm_migrate robust (i.e. now SRC or DST can be turned off during the migration) - fix teshsuite slee_host_off in java (but did not fix the output as I don't know how to do it), discover a bug on VM destroy (it is impossible to recreate the same VM: you get /Users/alebre/DEVELOPMENTS/SIMGRID/simgrid.orig/src/msg/msg_vm.c:209: [msg_vm/ERROR] host vm0 already exits) - Adrien
Gabriel Corona [Thu, 9 Oct 2014 13:59:29 +0000 (15:59 +0200)]
[mc] Fix segfault when a function does not have a name
This happens when compiling with LLVM (clang/dragonegg).
Gabriel Corona [Thu, 9 Oct 2014 12:21:52 +0000 (14:21 +0200)]
[mc] Give the real type of mc_heap/std_heap (xbt_mheap_t, not void*)