-
Notifications
You must be signed in to change notification settings - Fork 218
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve cfg files and add TBG variable doc #153
Changes from all commits
fa9a6b6
59c0f82
fd9bb68
44d71c9
5c59bb2
ea3a499
10f6528
cd28753
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,189 @@ | ||
# Copyright 2014 Felix Schmitt | ||
# | ||
# This file is part of PIConGPU. | ||
# | ||
# PIConGPU is free software: you can redistribute it and/or modify | ||
# it under the terms of the GNU General Public License as published by | ||
# the Free Software Foundation, either version 3 of the License, or | ||
# (at your option) any later version. | ||
# | ||
# PIConGPU is distributed in the hope that it will be useful, | ||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
# GNU General Public License for more details. | ||
# | ||
# You should have received a copy of the GNU General Public License | ||
# along with PIConGPU. | ||
# If not, see <http://www.gnu.org/licenses/>. | ||
|
||
################################################################################ | ||
## This file describes sections and variables for PIConGPU's | ||
## TBG batch file generator. | ||
## These variables basically wrap PIConGPU command line flags. | ||
## To see all flags available for your PIConGPU binary, run | ||
## picongpu --help. The avalable flags depend on your configuration flags. | ||
## | ||
## Flags that target a specific species e.g. electrons (--png_e) or ions | ||
## (--png_i) must only be used if the respective species is activated (configure flags). | ||
## | ||
## If not stated otherwise, variables/flags must not be used more than once! | ||
################################################################################ | ||
|
||
################################################################################ | ||
## Section: Required Variables | ||
## Variables in this secton are necessary for PIConGPU to work properly and should not | ||
## be removed. However, you are free to adjust them to your needs, e.g. setting | ||
## the number of GPUs in each dimension. | ||
################################################################################ | ||
|
||
# Batch system walltime | ||
TBG_wallTime="1:00:00" | ||
|
||
# Number of GPUs in each dimension (x,y,z) to use for the simunaltion. | ||
TBG_gpu_x=1 | ||
TBG_gpu_y=2 | ||
TBG_gpu_z=1 | ||
|
||
# Size of the simulation grid in cells as "-g X Y Z" | ||
TBG_gridSize="-g 128 256 128" | ||
|
||
# Number of simulation steps/iterations as "-s N" | ||
TBG_steps="-s 100" | ||
|
||
|
||
################################################################################ | ||
## Section: Optional Variables | ||
## You are free to add and remove variables here as you like. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. One could add, that all these makros are basically just an example configuration with the options provided by There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. integrated in header |
||
## The only exception is TBG_plugins which is used to forward your variables | ||
## to the TBG program. This variable can be modified but should not be removed! | ||
## | ||
## Please add all variables you define in this section to TBG_plugins. | ||
################################################################################ | ||
|
||
# Variables which are created by TBG (should be self-descriptive) | ||
TBG_jobName | ||
TBG_jobNameShort | ||
TBG_cfgPath | ||
TBG_cfgFile | ||
TBG_projectPath | ||
TBG_dstPath | ||
|
||
|
||
# Regex to describe the static distribution of the cells for each GPU | ||
# default: equal distribution over all GPUs | ||
# example for -d 2 4 1 -g 128 192 12 | ||
TBG_gridDist="--gridDist '64{2}' '64,32{2},64'" | ||
|
||
|
||
# Specifies whether the grid is periodic (1) or not (0) in each dimension (X,Y,Z). | ||
# Default: no periodic dimensions | ||
TBG_periodic="--periodic 1 0 1" | ||
|
||
|
||
# Enables moving window (sliding) in your simulation | ||
TBG_movingWindow="-m" | ||
|
||
|
||
# The following flags are available for the radiation plugin. | ||
# For a full description, see the plugins section in the online wiki. | ||
#--radiation_e.period Radiation is calculated every .period steps. Currently 0 or 1 | ||
#--radiation_e.dump Period, after which the calculated radiation data should be dumped to the file system | ||
#--radiation_e.lastRadiation If set to 1, the spectra summed between the last and the current dump-time-step are stored | ||
#--radiation_e.folderLastRad Folder in which the summed spectra are stored | ||
#--radiation_e.totalRadiation Set to 1 to store spectra summed from simulation start till current time step | ||
#--radiation_e.folderTotalRad Folder in which total radiation spectra are stored | ||
#--radiation_e.start Time step to start calculating the radition | ||
#--radiation_e.end Time step to stop calculating the radiation | ||
#--radiation_e.omegaList If spectrum frequencies are taken from a file, this gives the path to this list | ||
#--radiation_e.radPerGPU If set to 1, each GPU stores its own spectra without summing the entire simulation area | ||
#--radiation_e.folderRadPerGPU Folder where the GPU specific spectras are stored | ||
#--radiation_e.restart If set to 1, stored amplitudes are used to initialize the spectra | ||
TBG_radiation="--radiation_e.period 1 --radiation_e.dump 2 --radiation_e.totalRadiation 1 \ | ||
--radiation_e.lastRadiation 0 --radiation_e.start 2800 --radiation_e.end 3000" | ||
|
||
|
||
# Create 2D images in PNG format every .period steps. | ||
# Images can be created for the following particle species: | ||
# - Electrons (--png_e) | ||
# - Ions (--png_i) | ||
# The slice plane is defined using .axis [yx,yz] and .slicePoint (offset from origin | ||
# as a float within [0.0,1.0]. | ||
# The output folder can be set with .folder. | ||
# Can be used more than once to print different images, e.g. for YZ and YX planes. | ||
TBG_E_pngYZ="--png_e.period 10 --png_e.axis yz --png_e.slicePoint 0.5 --png_e.folder pngElectronsYZ" | ||
TBG_E_pngYX="--png_e.period 10 --png_e.axis yx --png_e.slicePoint 0.5 --png_e.folder pngElectronsYX" | ||
TBG_I_pngYZ="--png_i.period 10 --png_i.axis yz --png_i.slicePoint 0.5 --png_i.folder pngIonsYZ" | ||
TBG_I_pngYX="--png_i.period 10 --png_i.axis yx --png_i.slicePoint 0.5 --png_i.folder pngIonsYX" | ||
|
||
|
||
# Notification period of position plugin (single-particle debugging) | ||
TBG_E_pos_dbg="--pos_e.period 1" | ||
|
||
|
||
# Create a particle-energy histogram [in keV] every .period steps for: | ||
# - Electrons (--bin_e) | ||
# - Ions (--bin_i) | ||
TBG_eBin="--bin_e.period 500 --bin_e.binCount 1024 --bin_e.minEnergy 0 --bin_e.maxEnergy 500000" | ||
TBG_iBin="--bin_i.period 500 --bin_i.binCount 1024 --bin_i.minEnergy 0 --bin_i.maxEnergy 500000" | ||
|
||
|
||
# Binary density output for slides every .period steps over axis .axis [yx,yz] | ||
# at offset .slicePoint [0.0,1.0] from origin to folder .folder. | ||
# Possible for: | ||
# - Electrons (--binDensity_e) | ||
# - Ions (--binDensity_i) | ||
TBG_E_binaryDensity="--binDensity_e.period 100 --binDensity_e.axis yx \ | ||
--binDensity_e.slicePoint 0.5 --binDensity_e.folder densityElectrons" | ||
TBG_I_binaryDensity="--binDensity_i.period 100 --binDensity_i.axis yx \ | ||
--binDensity_i.slicePoint 0.5 --binDensity_i.folder densityIons" | ||
|
||
|
||
# Sum up total energy every .period steps for | ||
# - Electrons (--energy_e) | ||
# - Ions (--energy_i) | ||
# - Fields (--energy_fields) | ||
TBG_sumEnergy="--energy_fields.period 10 --energy_e.period 10 --energy_i.period 10" | ||
|
||
|
||
# Count the number of macro particles every .period steps for | ||
# - Electrons (--elec_cnt) | ||
# - Ions (--ions_cnt) | ||
TBG_macroCount="--elec_cnt.period 100 --ions_cnt.period 100" | ||
|
||
|
||
# Dump simulation data (fields and particles) to HDF5 files using libSplash. | ||
# Data is dumped every .period steps to the fileset .file. | ||
TBG_hdf5="--hdf5.period 100 --hdf5.file simData" | ||
|
||
|
||
# Restart the simulation from libSplash files created using TBG_hdf5. | ||
TBG_restart="--restart --restart-file simData" | ||
|
||
|
||
# Connect to a live-view server (start the server in advance) | ||
TBG_liveViewYX="--live_e.period 1 --live_e.slicePoint 0.5 --live_e.ip 10.0.2.254 \ | ||
--live_e.port 2020 --live_e.axis yx" | ||
TBG_liveViewYZ="--live_e.period 1 --live_e.slicePoint 0.5 --live_e.ip 10.0.2.254 \ | ||
--live_e.port 2021 --live_e.axis yz" | ||
|
||
|
||
################################################################################ | ||
## Section: Program Parameters | ||
## This section contains TBG internal variables, often composed from required | ||
## variables. These should not be modified except when you know what you are doing! | ||
################################################################################ | ||
|
||
# Number of compute devices in each dimension as "-d X Y Z" | ||
TBG_devices="-d !TBG_gpu_x !TBG_gpu_y !TBG_gpu_z" | ||
|
||
|
||
# Combines all declared variables. These are passed to PIConGPU as command line flags. | ||
# The program output (stdout) is stored in a file called output.stdout. | ||
TBG_programParams="!TBG_devices \ | ||
!TBG_gridSize \ | ||
!TBG_steps \ | ||
!TBG_plugins | tee output.stdout" | ||
|
||
|
||
# Total number of GPUs | ||
TBG_tasks="$(( TBG_gpu_x * TBG_gpu_y * TBG_gpu_z ))" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
#!/bin/bash | ||
# Copyright 2013 Rene Widera | ||
# Copyright 2013-2014 Rene Widera, Felix Schmitt | ||
# | ||
# This file is part of PIConGPU. | ||
# | ||
|
@@ -16,16 +16,18 @@ | |
# You should have received a copy of the GNU General Public License | ||
# along with PIConGPU. | ||
# If not, see <http://www.gnu.org/licenses/>. | ||
# | ||
|
||
# variables which are created by tbg | ||
# TBG_jobName | ||
# TBG_jobNameShort | ||
# TBG_cfgPath | ||
# TBG_cfgFile | ||
# TBG_projectPath | ||
# TBG_dstPath | ||
# | ||
|
||
## | ||
## This configuration file is used by PIConGPU's TBG tool to create a | ||
## batch script for PIConGPU runs. For a detailed description of PIConGPU | ||
## configuration files including all available variables, see doc/TBG_macros.cfg. | ||
## | ||
|
||
|
||
################################# | ||
## Section: Required Variables ## | ||
################################# | ||
|
||
TBG_wallTime="23:53:00" | ||
|
||
|
@@ -34,16 +36,23 @@ TBG_gpu_y=4 | |
TBG_gpu_z=1 | ||
|
||
TBG_gridSize="-g 192 512 12" | ||
TBG_steps="-s 2500" | ||
TBG_devices="-d !TBG_gpu_x !TBG_gpu_y !TBG_gpu_z" | ||
TBG_steps="-s 2000" | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is the wrong section for periodic There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. integrated now |
||
TBG_programParams="--periodic 1 1 1 \ | ||
!TBG_devices \ | ||
!TBG_gridSize \ | ||
!TBG_steps \ | ||
!TBG_analyser | tee output" | ||
TBG_periodic="--periodic 1 1 1" | ||
|
||
################################# | ||
## Section: Optional Variables ## | ||
################################# | ||
|
||
TBG_pngYZ="--png_e.period 10 --png_e.axis yz --png_e.slicePoint 0.5 --png_e.folder pngElectronsYZ" | ||
TBG_pngYX="--png_e.period 10 --png_e.axis yx --png_e.slicePoint 0.5 --png_e.folder pngElectronsYX" | ||
|
||
TBG_ipngYX="--png_i.period 10 --png_i.axis yx --png_i.slicePoint 0.5 --png_i.folder pngIonsYX" | ||
|
||
TBG_analyser="!TBG_ipngYX \ | ||
TBG_eBin="--bin_e.period 100 --bin_e.binCount 1024 --bin_e.minEnergy 0 --bin_e.maxEnergy 5000" | ||
TBG_iBin="--bin_i.period 100 --bin_i.binCount 1024 --bin_i.minEnergy 0 --bin_i.maxEnergy 2000000" | ||
|
||
TBG_plugins="!TBG_ipngYX \ | ||
!TBG_eBin \ | ||
!TBG_iBin \ | ||
!TBG_pngYX \ | ||
|
@@ -54,20 +63,19 @@ TBG_analyser="!TBG_ipngYX \ | |
--energy_e.period 10 \ | ||
--energy_i.period 10" | ||
|
||
TBG_pic_liveView="--live_e.period 1 --live_e.slicePoint 0.5 --live_e.ip 10.149.255.254 --live_e.port 2020 --live_e.axis yx" | ||
TBG_hdf5="--hdf5.period 100" | ||
|
||
TBG_pngYZ="--png_e.period 10 --png_e.axis yz --png_e.slicePoint 0.5 --png_e.folder pngElectronsYZ" | ||
TBG_pngYX="--png_e.period 10 --png_e.axis yx --png_e.slicePoint 0.5 --png_e.folder pngElectronsYX" | ||
|
||
TBG_ipngYZ="--png_i.period 10 --png_i.axis yz --png_i.slicePoint 0.5 --png_i.folder pngIonsYZ" | ||
TBG_ipngYX="--png_i.period 10 --png_i.axis yx --png_i.slicePoint 0.5 --png_i.folder pngIonsYX" | ||
################################# | ||
## Section: Program Parameters ## | ||
################################# | ||
|
||
# [in keV] | ||
TBG_eBin="--bin_e.period 100 --bin_e.binCount 1024 --bin_e.minEnergy 0 --bin_e.maxEnergy 5000" | ||
TBG_iBin="--bin_i.period 100 --bin_i.binCount 1024 --bin_i.minEnergy 0 --bin_i.maxEnergy 2000000" | ||
#TBG_iBin="--bin_i.period 100 --bin_i.binCount 1024 --bin_i.minEnergy 0 --bin_i.maxEnergy 30000" | ||
TBG_devices="-d !TBG_gpu_x !TBG_gpu_y !TBG_gpu_z" | ||
|
||
TBG_programParams="!TBG_devices \ | ||
!TBG_gridSize \ | ||
!TBG_steps \ | ||
!TBG_periodic \ | ||
!TBG_plugins \ | ||
| tee output" | ||
|
||
# TOTAL number of GPUs | ||
TBG_tasks="$(( TBG_gpu_x * TBG_gpu_y * TBG_gpu_z ))" | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
there is an other option available with
--gridDist
which reads grid spacing. It allows for non-equal distributed number of cells over different nodes. I tried to describe it in full withpicongpu --help
:There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
integrated