Message: Re: MT - Detecting Number of Cores Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Idea Re: MT - Detecting Number of Cores 

Forum: Multithreading
Re: None MT - Detecting Number of Cores (William Donahue)
Date: 22 Mar, 2014
From: Andrea Dotti <Andrea Dotti>

Hello William, by default G4 MT uses 2 threads, but you can set their number in the main:

G4MTRunManager* rm = new G4MTRunManager(); rm->SetNumberOfThreads( ... );

The helper function: #include "G4Threading.hh" G4int G4Threading::G4GetNumberOfCores(); returns the number of logical cores of your machine.

The UI command: /run/numberOfThreads n Can be used to set the number of threads in interactive mode or macro files, but it can be used only before a /run/initialize is issued (if you use Qt GUI this does not work, before Qt GUI requires /run/initialize before starting).

Finally, you can use the environment variable G4FORCENUMBEROFTHREADS to specify the number of threads. This will overwrite all other settings, and you can use the special keyword "max" as value to use all available logical cores.

Note that currently number of threads cannot be changed anymore after /run/initialize (or G4RunManager::Initialize()) is invoked.

Andrea

 Add Message Add Message
to: "Re: MT - Detecting Number of Cores"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews