X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/077f7f266102bddac2718d876b0a4a4015641996..6a08055e39d84cfc950ebd85f7d7f15dc87a777f:/doc/FAQ.doc diff --git a/doc/FAQ.doc b/doc/FAQ.doc index a95cadae00..ee25a4349b 100644 --- a/doc/FAQ.doc +++ b/doc/FAQ.doc @@ -108,28 +108,6 @@ CMake needs some prerequists like : \li ccmake for graphical used of CMake \li cmake (download page) -For windows only : - \li Visual C++ 2010 Express (download page) - \li cmake (download page) - \li Set CC, CXX, INCLUDE, LIB and RC to environment variables. -\verbatim -SET --> CC TO --> C:\MicrosoftVisualStudio10\VC\bin\cl - --> CXX --> C:\MicrosoftVisualStudio10\VC\bin\cl - --> INCLUDE --> C:\MicrosoftVisualStudio10\VC\include;C:\Program Files\Microsoft SDKs\Windows\v7.OA\Include - --> LIB --> C:\MicrosoftVisualStudio10\VC\lib;C:\Program Files\Microsoft SDKs\Windows\v7.OA\Lib - --> RC --> C:\Program Files\Microsoft SDKs\Windows\v7.OA\bin\RC -\endverbatim - \li Add to environment variable "Path" the path where to find nmake executable and some needed files. -\verbatim -...... -;C\MicrosoftVisualStudio10\VC\bin -;C\MicrosoftVisualStudio10\Common7\IDE -;C:\Program Files\Microsoft SDKs\Windows\v7.OA\bin -;C:\Program Files\Microsoft SDKs\Windows\v7.OA\Lib -;C:\Program Files\Microsoft SDKs\Windows\v7.OA\bInclude -\endverbatim -\subsection faq_cmakeoption Cmake options - \subsubsection faq_cmakeoption1 Liste of options \verbatim @@ -466,9 +444,14 @@ make install \subsubsection faq_cmakeinstall2 From a distrib \verbatim -cmake -Dprefix=/home/navarrop/Bureau/install_simgrid ./ -make -make install +For version 3.4.1 and 3.4 + cmake -Dprefix=/home/navarrop/Bureau/install_simgrid ./ + make + make install-simgrid +Since version 3.5 + cmake -Dprefix=/home/navarrop/Bureau/install_simgrid ./ + make + make install \endverbatim \subsection faq_cmakehowto How to modified sources files for developers @@ -1068,22 +1051,32 @@ you still don't see how to do it, please come back to us... \subsubsection faq_MIA_asynchronous I want to do asynchronous communications in MSG -Up until now, there is no asynchronous communications in MSG. However, -you can create as many process as you want so you should be able to do -whatever you want... I've written a queue module to help implementing -some asynchronous communications at low cost (creating thousands of -process only to handle communications may be problematic in term of -performance at some point). I'll add it in the distribution asap. +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 @@ -1374,7 +1367,38 @@ annotate Tiers-generated topologies. This perl-script is in tools/platform_generation/ directory of the SVN. Dinda et Al. released a very comparable tool, and called it GridG. -\subsubsection faq_SURF_dynamic Expressing dynamic resource availability in platform files +\subsubsection faq_SURF_multicore Modeling multi-core resources + +There is currently no native support for multi-core or SMP machines in +SimGrid. We are currently working on it, but coming up with the right +model is very hard: Cores share caches and bus to access memory and +thus interfere with each others. Memory contention is a crucial +component of multi-core modeling. + +In the meanwhile, some user-level tricks can reveal sufficient for +you. For example, you may model each core by a CPU and add some very +high speed links between them. This complicates a bit the user code +since you have to remember that when you assign something to a (real) +host, it can be any of the (fake) hosts representing the cores of a +given machine. For that, you can use the prop tag of the XML files as +follows. Your code should then look at the ‘machine’ property +associated with each workstation, and run parallel tasks over all +cores of the machine. + +\verbatim + + + + + + + + + + +\endverbatim + +\subsubsection faq_SURF_dynamic Modeling dynamic 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 @@ -2045,8 +2069,8 @@ be relative locally. For LINK we have: \verbatim LINK = { - src = SrcHost; - dst = DstHost; + src = source; + dst = destination; size = bandwidth; scale = global; @@ -2055,7 +2079,7 @@ For LINK we have: For the types specified in the edge parameter (such as LINK), the configuration must contain two additional parameters: src and dst that are used to properly identify which nodes this edge is -connecting. The values SrcHost and DstHost are always present +connecting. The values source and destination are always present in the SimGrid trace file and should not be changed in the configuration. The parameter size for the LINK, in this case, is configured as the variable bandwidth, with a global scale. The scale meaning @@ -2093,8 +2117,8 @@ as configuration for HOST and LINK this: }; LINK = { - src = SrcHost; - dst = DstHost; + src = source; + dst = destination; size = bandwidth; scale = global; @@ -2156,8 +2180,8 @@ visualization was generated with the following configuration: }; }; LINK = { - src = SrcHost; - dst = DstHost; + src = source; + dst = destination; size = bandwidth; scale = global;