fly. The process you are running can do whatever you want. Have you
thought about adding a global structure where you directly compute the
informations that are really important rather than writing everything
-down and then processing huge files ?
+down and then processing huge files?
-\subsection faq_C Argh! Do I really have to code in C ?
+\subsection faq_C Argh! Do I really have to code in C?
Up until now, there is no binding for other languages. If you use C++,
you should be able to use the SimGrid library as a standard C library
functions for everybody's need when these functions can easily be
built from the ones already in the API. Most of the time, it is
possible and when it was not possible we always have upgraded the API
-accordingly. When somebody asks us a question like "How to do that ?
-Is there a function in the API to simply do this ?", we're always glad
+accordingly. When somebody asks us a question like "How to do that?
+Is there a function in the API to simply do this?", we're always glad
to answer and help. However if we don't need this code for our own
need, there is no chance we're going to write it... it's your job! :)
The counterpart to our answers is that once you come up with a neat
case, please detail what you mean on the mailing list, and we will extend
this FAQ section to fit your taste if possible.
-\subsubsection faq_MIA_communication_time How can I get the *real* communication time ?
+\subsubsection faq_MIA_communication_time How can I get the *real* communication time?
Communications are synchronous and thus if you simply get the time
before and after a communication, you'll only get the transmission
\subsection faq_MIA_SimDag SimDag related questions
-\subsubsection faq_SG Where has SG disappeared?!?
+\subsubsection faq_SG Where has SG disappeared?
OK, it's time to explain what's happening to the SimGrid project. Let's
start with a little bit of history.
is too low, you'll get a segfault. The token ring example, which
is quite simple, runs with 40kb stacks.
-\subsubsection faq_MIA_batch_scheduler Is there a native support for batch schedulers in SimGrid ?
+\subsubsection faq_MIA_batch_scheduler Is there a native support for batch schedulers in SimGrid?
No, there is no native support for batch schedulers and none is
planned because this is a very specific need (and doing it in a
<tt>tools/platform_generation/</tt> directory. There is a perl-script
we use to annotate a Tiers generated platform.
-\subsubsection faq_SURF_dynamic Building a dynamic platform, with resource availability?
+\subsubsection faq_SURF_dynamic Building a dynamic platform, with resource availability
A nice feature of SimGrid is that it enables you to seamlessly have
resources whose availability change over time. When you build a
bandwidth_file and latency_file do not express fraction of available
power but are expressed directly in bytes per seconds and seconds.
+\subsubsection faq_platform_multipath Is it possible to have several paths between two given hosts?
+
+The answer is no, unfortunately. Let's consider the following platform
+file:
+
+\verbatim
+<route src="A" dst="B">
+ <route_element name="1"/>
+</route>
+<route src="B" dst="C">
+ <route_element name="2"/>
+</route>
+<route src="A" dst="C">
+ <route_element name="3"/>
+</route>
+\endverbatim
+
+Althrough it is perfectly valid, it does not mean that data traveling
+from A to C can either go directly (using link 3) or through B (using
+links 1 and 2). It simply means that the routing on the graph is not
+trivial, and that data do not following the shortest path in number of
+hops on this graph. Another way to say it is that there is no implicit
+in these routing descriptions. The system will only use the routes you
+declare (such as <route src="A" dst="C"><route_element
+name="3"/></route>), without trying to build new routes by aggregating
+the provided ones.
+
+You are also free to declare platform where the routing is not
+symetric. For example, add the following to the previous file:
+
+\verbatim
+<route src="C" dst="A">
+ <route_element name="2"/>
+ <route_element name="1"/>
+</route>
+\endverbatim
+
+This makes sure that data from C to A go through B where data from A
+to C go directly. Do not worry about realism of such settings since
+we've seen ways more weird situation in real settings.
+
\subsubsection faq_flexml_bypassing Bypassing the XML parser with your own C functions
So you want to bypass the XML files parser, uh? Maybe doin some parameter