Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/README.HowToRunMT

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/README.HowToRunMT (Version 11.3.0) and /examples/README.HowToRunMT (Version 10.0.p2)


                                                   >>   1 $Id: README,v 1.16 2010-11-29 10:34:36 gcosmo Exp $
  1 ----------------------------------------------      2 -------------------------------------------------------------------
  2                                                     3 
  3      =========================================      4      =========================================================
  4      Geant4 - an Object-Oriented Toolkit for S      5      Geant4 - an Object-Oriented Toolkit for Simulation in HEP
  5      =========================================      6      =========================================================
  6                                                     7 
  7         Tips how to run an example in multi-th      8         Tips how to run an example in multi-threading mode
  8         --------------------------------------      9         --------------------------------------------------
  9                                                    10 
 10  Only migrated examples or user applications c << 
 11  The instructions for migrating user applicati << 
 12  and a short howto is available here:          << 
 13                                                << 
 14  https://twiki.cern.ch/twiki/bin/view/Geant4/Q << 
 15                                                << 
 16  In this file, we give just useful tips for ru << 
 17  (or user applications).                       << 
 18                                                << 
 19  1) RUN EXAMPLE IN MULTI-THREADING MODE            11  1) RUN EXAMPLE IN MULTI-THREADING MODE
 20                                                    12 
 21  No special steps are needed to build an examp     13  No special steps are needed to build an example in multi-threading (MT) mode.
 22  The examples which has been migrated to multi     14  The examples which has been migrated to multi-threading will automatically 
 23  run in MT when they are built against the Gea     15  run in MT when they are built against the Geant4 libraries built with MT mode
 24  activated, otherwise they will run in sequent     16  activated, otherwise they will run in sequential mode.
 25  Not migrated examples will run in sequential      17  Not migrated examples will run in sequential mode even when built against
 26  Geant4 libraries built with MT mode activated     18  Geant4 libraries built with MT mode activated.
 27                                                    19 
 28  The examples which do NOT support MT can be e <<  20  The examples which support MT can be easily recognized by the following lines
 29  of code in main ():                               21  of code in main ():
 30                                                    22 
                                                   >>  23  #ifdef G4MULTITHREADED
                                                   >>  24    G4MTRunManager* runManager = new G4MTRunManager;
                                                   >>  25  #else
 31    G4RunManager* runManager = new G4RunManager     26    G4RunManager* runManager = new G4RunManager;
                                                   >>  27  #endif
 32                                                    28 
 33 or                                             <<  29  The compiler flag -DG4MULTITHREADED is automatically set when building applications
 34                                                <<  30  using Geant4's CMake (via GEANT4_USE_FILE) and GNUmake systems, and is listed in 
 35    auto* runManager = G4RunManagerFactory::Cre <<  31  the flags reported by the --cflags option of the geant4-config program.
 36                                                    32 
 37  2) SET NUMBER OF THREADS                          33  2) SET NUMBER OF THREADS
 38                                                    34 
 39  When the number of threads is not selected in     35  When the number of threads is not selected in the application, the default number
 40  (which is actually 2) will be used. Another n     36  (which is actually 2) will be used. Another number of threads can be set in several
 41  ways:                                             37  ways:
 42                                                    38 
 43  - in the code                                     39  - in the code
 44                                                    40 
 45    auto* runManager = ...;                     <<  41    #ifdef G4MULTITHREADED
 46    runManager->SetNumberOfThreads(4);          <<  42      G4MTRunManager* runManager = new G4MTRunManager;
                                                   >>  43      runManager->SetNumberOfThreads(4);
                                                   >>  44    #else
                                                   >>  45      ...
 47                                                    46 
 48  - in a macro file via UI command added just b     47  - in a macro file via UI command added just before /run/initialize
 49                                                    48 
 50    /run/numberOfThreads 4                          49    /run/numberOfThreads 4
 51                                                    50 
 52  - by setting the environment variable             51  - by setting the environment variable 
 53                                                    52   
 54    export G4FORCENUMBEROFTHREADS = 4               53    export G4FORCENUMBEROFTHREADS = 4  
 55    or                                              54    or
 56    setenv G4FORCENUMBEROFTHREADS 4                 55    setenv G4FORCENUMBEROFTHREADS 4
 57                                                    56 
 58  The environment variable value is forced and      57  The environment variable value is forced and it cannot be changed from a code 
 59  call or a macro. A warning is issued in such      58  call or a macro. A warning is issued in such situation.
 60                                                    59 
 61  3) OUTPUT FROM THREADS                            60  3) OUTPUT FROM THREADS
 62                                                    61 
 63  In MT processing each worker produces its out     62  In MT processing each worker produces its output and these messages are interlayed
 64  on the screen. The messeges from threads are      63  on the screen. The messeges from threads are preceded with a predefined string 
 65  G4WTi> where i is the thread number.  Users c     64  G4WTi> where i is the thread number.  Users can change this default behaviour 
 66  and choose                                        65  and choose
 67                                                    66 
                                                   >>  67  - to buffer the output from each thread at a time, so that the output of each 
                                                   >>  68    thread is grouped and printed at the end of the job
                                                   >>  69 
                                                   >>  70    /control/cout/useBuffer true|false
                                                   >>  71 
 68  - to limit the output from threads to one sel     72  - to limit the output from threads to one selected thread only: 
 69                                                    73 
 70   /control/cout/ignoreThreadsExcept 0              74   /control/cout/ignoreThreadsExcept 0
 71                                                    75 
 72  - to redirect the output from threads in a fi     76  - to redirect the output from threads in a file:
 73                                                    77 
 74    /control/cout/setCoutFile coutFileName          78    /control/cout/setCoutFile coutFileName
 75    /control/cout/setCerrFile cerrFileName          79    /control/cout/setCerrFile cerrFileName
 76                                                << 
 77  - to buffer the output from each thread at a  << 
 78    thread is grouped and printed at the end of << 
 79                                                << 
 80    /control/cout/useBuffer true|false          <<