but only available in some (S4U) APIs. It would be nice to add support for
them in the rest of the C++ code.
+A related change would be to avoid using "-1" to mean "forever" at least in S4U
+and in the internal code. For compatibility, MSG should probably keep this
+semantic. We should probably always use separate functions
+(`wait` vs `wait_for`).
+
@subsubsection contributing_todo_futures Futures
- Some features are missing in the Maestro future implementation
may speedup the simulation by discarding very small actions, at the
price of a reduced numerical precision.
-\subsection options_model_nthreads Parallel threads for model updates
-
-By default, Surf computes the analytical models sequentially to share their
-resources and update their actions. It is possible to run them in parallel,
-using the \b surf/nthreads item (default value: 1). If you use a
-negative or null value, the amount of available cores is automatically
-detected and used instead.
-
-Depending on the workload of the models and their complexity, you may get a
-speedup or a slowdown because of the synchronization costs of threads.
-
\subsection options_model_network Configuring the Network model
\subsubsection options_model_network_gamma Maximal TCP window size
> [Tremblay:Receiver:(3) 2.957786] [jmsg/INFO] --- bw 1.1627602630025032E8 ----
> [Tremblay:Receiver:(3) 3.817809] [jmsg/INFO] goodbye!
-!$ rm -rf simulation.trace
+$ rm -rf simulation.trace
virtual ~Activity();
public:
+ Activity(Activity const&) = delete;
+ Activity& operator=(Activity const&) = delete;
+
/** Starts a previously created activity.
*
* This function is optional: you can call wait() even if you didn't call start()
# - our unit tests
# - the tests that we borrowed elsewhere (MPICH and ISP)
# - Flex-generated files
-sonar.exclusions=src/*_unit.c*,teshsuite/smpi/mpich3-test/*,teshsuite/smpi/isp/*,**/*_dtd.c
+# - Collectives that we borrowed elsewhere (mpich, openMPI and other implems)
+sonar.exclusions=src/*_unit.c*,teshsuite/smpi/mpich3-test/*,teshsuite/smpi/isp/*,**/*_dtd.c,src/smpi/colls/*
# Ignore files that are generated from Flex
sonar.issue.ignore.allfile=flexGenerated
sonar.issue.ignore.allfile.flexGenerated.fileRegexp="generated by flex"
+# Ignore the files that SMPI scavenged here and there (not working)
+#sonar.issue.ignore.allfile=mpiColls
+#sonar.issue.ignore.allfile.flexGenerated.mpiColls="Ahmad Faraj"
+#sonar.issue.ignore.allfile=mpivapich
+#sonar.issue.ignore.allfile.flexGenerated.mpivapich="This file is part of the MVAPICH2 software package"
+#sonar.issue.ignore.allfile=mpiOmpi
+#sonar.issue.ignore.allfile.flexGenerated.mpiOmpi="University of Tennessee"
+
# The build-wrapper output dir
sonar.cfamily.build-wrapper-output=bw-outputs
if (!rngstream)
return JNI_FALSE;
- int result = RngStream_SetSeed(rngstream, (unsigned long*)buffer);
+ // The C API expects unsigned long which are wider than int on LP64.
+ // We need to convert:
+ unsigned long seed[6];
+ for (int i = 0; i != 6; ++i)
+ seed[i] = buffer[i];
+
+ int result = RngStream_SetSeed(rngstream, seed);
return result == -1 ? JNI_FALSE : JNI_TRUE;
}
void* recv(Mailbox &chan) {
void *res = nullptr;
- Comm c = Comm::recv_init(chan);
+ Comm& c = Comm::recv_init(chan);
c.setDstData(&res,sizeof(res));
c.wait();
return res;
}
void send(Mailbox &chan, void *payload, size_t simulatedSize) {
- Comm c = Comm::send_init(chan);
+ Comm& c = Comm::send_init(chan);
c.setRemains(simulatedSize);
c.setSrcData(payload);
// c.start() is optional.