Користувальницькькі налаштування

Налаштування сайту


geant4

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Both sides previous revision Попередня ревізія
Наступна ревізія
Попередня ревізія
Наступна ревізія Both sides next revision
geant4 [2016/04/03 01:28]
wombat [G4MPI] ссылка на документацию
geant4 [2016/04/03 10:57]
wombat [G4MPI] CMakeLists.txt
Рядок 222: Рядок 222:
   Idle> /run/beamOn 10   Idle> /run/beamOn 10
  
 +
 +===== Параллельные вычисления =====
 +
 +==== G4MPI ====
 +
 +Согласно [[http://​geant4.web.cern.ch/​geant4/​UserDocumentation/​Doxygen/​examples_doc/​html/​Examples_MPI.html | документации G4MPI]], программа на GEANT4, использующая технологии MPI может иметь примерно такую структуру:​
 +
 +<code c++>
 +#include "​G4MPImanager.hh"​
 +#include "​G4MPIsession.hh"​
 +
 +int main(int argc,char** argv)
 +{
 +  // Создание диспетчера G4MPImanager
 +  G4MPImanager* g4MPI= new G4MPImanager(argc,​argv);​
 +      ​
 +  // Создание сессии MPI (G4MPIsession) вместо G4UIterminal
 +  G4MPIsession* session= g4MPI-> GetMPIsession();​
 +      ​
 +  // Далее следует стандартный код программы на GEANT4
 +  G4RunManager* runManager= new G4RunManager();​
 +
 +  ...
 +
 +  // После установки всех параметров программы нужно запустить сессию MPI.
 +  // MPIsession может работать как в интерактивном,​ так и в пакетном режиме.
 +  session->​SessionStart();​
 +
 +  // В конце выполнения программы
 +  delete g4MPI;
 +  delete runManager;
 +}   
 +</​code>​
 +
 +Компилировать такую программу нужно следующим образом (предполагается,​ что все пользовательские программы на GEANT4 находятся в каталоге ''/​home/​user/​geant/'',​ а текущая программа - в подкаталоге ''​MPItest''​).
 +
 +Сначала нужно указать в ''​CMakeLists.txt''​ для нашей программы пути к файлам MPI. Для этого нужно отредактировать или добавить такие строки:​
 +
 +<code txt "​CMakeLists.txt">​
 +# Поиск пакета MPI в системе:​
 +find_package(MPI REQUIRED)
 +
 +# Установка флагов компилятора и компоновщика:​
 +set(CMAKE_CXX_COMPILE_FLAGS ${CMAKE_CXX_COMPILE_FLAGS} ${MPI_COMPILE_FLAGS})
 +set(CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} ${MPI_LINK_FLAGS})
 +
 +# Путь к заголовочным файлам:​
 +include_directories(${MPI_INCLUDE_PATH} "/​home/​user/​GEANT4/​G4MPI/​include/"​)
 +
 +# Путь к библиотекам для компоновки окончательного исполнимого файла программы:​
 +target_link_libraries(MPItest-program.bin ${MPI_LIBRARIES} ${G4mpi_DIR}/​libG4mpi.so)
 +</​code>​
 +
 +Затем собственно компиляция:​
 +
 +<​code>​
 +cd /​home/​user/​geant/​
 +mkdir MPItest.build
 +cd MPItest.build
 +. /​home/​user/​GEANT4/​bin/​geant4.sh
 +cmake -DGeant4_DIR=/​home/​user/​GEANT4/​lib/​Geant4-10.2.1 -DG4mpi_DIR=/​home/​user/​GEANT4/​G4MPI/​lib ../MPItest
 +make
 +</​code>​
 +
 +Запускать полученную программу можно в стандартном окружении MPI. Например,​
 +
 +  mpirun -n 4 ./​MPItest-program.bin
  
  
geant4.txt · В останнє змінено: 2021/11/10 10:47 by wombat