\subsubsection faq_MIA_asynchronous I want to do asynchronous communications in MSG
-We can now use asynchronous communication in MSG by using function :
-
- MSG_task_isend()
-
- MSG_task_irecv()
-
- MSG_comm_test()
-
- MSG_comm_wait()
-
- MSG_comm_waitall()
-
- MSG_comm_waitany()
-
- MSG_comm_destroy()
-
-See page :\ref MSG_ex_asynchronous_communications
+In the past (version <= 3.4), there was no function to perform asynchronous communications.
+It could easily be implemented by creating new process when needed though. Since version 3.5,
+we have introduced the following functions:
+ - MSG_task_isend()
+ - MSG_task_irecv()
+ - MSG_comm_test()
+ - MSG_comm_wait()
+ - MSG_comm_waitall()
+ - MSG_comm_waitany()
+ - MSG_comm_destroy()
+
+We refer you to the description of these functions for more details on their usage as well
+as to the exemple section on \ref MSG_ex_asynchronous_communications.
\subsubsection faq_MIA_thread_synchronization I need to synchronize my MSG processes
-You obviously cannot use pthread_mutexes of pthread_conds. The best
-thing would be to propose similar structures. Unfortunately, we
-haven't found time to do it yet. However you can try to play with
-MSG_process_suspend() and MSG_process_resume(). You can even do some
-synchronization with fake communications (using MSG_task_get(),
+You obviously cannot use pthread_mutexes of pthread_conds since we handle every
+scheduling related decision within SimGrid.
+
+In the past (version <=3.3.4) you could do it by playing with
+MSG_process_suspend() and MSG_process_resume() or with fake communications (using MSG_task_get(),
MSG_task_put() and MSG_task_Iprobe()).
+Since version 3.4, you can use classical synchronization structures. See page \ref XBT_synchro or simply check in
+include/xbt/synchro_core.h.
+
\subsubsection faq_MIA_host_load Where is the get_host_load function hidden in MSG?
There is no such thing because its semantic wouldn't be really
For <em>LINK</em> we have:
\verbatim
LINK = {
- src = SrcHost;
- dst = DstHost;
+ src = source;
+ dst = destination;
size = bandwidth;
scale = global;
For the types specified in the <em>edge</em> parameter (such as <em>LINK</em>),
the configuration must contain two additional parameters: <em>src</em> and
<em>dst</em> that are used to properly identify which nodes this edge is
-connecting. The values <em>SrcHost</em> and <em>DstHost</em> are always present
+connecting. The values <em>source</em> and <em>destination</em> are always present
in the SimGrid trace file and should not be changed in the configuration. The
parameter <em>size</em> for the LINK, in this case, is configured as the
variable <em>bandwidth</em>, with a <em>global</em> scale. The scale meaning
};
LINK = {
- src = SrcHost;
- dst = DstHost;
+ src = source;
+ dst = destination;
size = bandwidth;
scale = global;
};
};
LINK = {
- src = SrcHost;
- dst = DstHost;
+ src = source;
+ dst = destination;
size = bandwidth;
scale = global;