Skip to content
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

Clarify .cfg files #117

Closed
f-schmitt opened this issue Dec 4, 2013 · 16 comments
Closed

Clarify .cfg files #117

f-schmitt opened this issue Dec 4, 2013 · 16 comments
Assignees
Labels
documentation regarding documentation or wiki discussions

Comments

@f-schmitt
Copy link
Member

It should be clear in the submit/.cfg files which variables are used and which are just examples and need to be added to e.g. TBG_programParams to be actually used.

example: TBG_movingWindow in 0016gpus.cfg.

@ax3l
Copy link
Member

ax3l commented Dec 4, 2013

👍

@ax3l
Copy link
Member

ax3l commented Dec 4, 2013

Also some namings in .tpl files are not very clear. I started to declutter that in the slurm/sbatch tpl

@ax3l
Copy link
Member

ax3l commented Dec 6, 2013

  • add 1gpu.cfg for each example

@ghost ghost assigned f-schmitt Dec 6, 2013
@f-schmitt
Copy link
Member Author

How about this layout for cfg files. I think each file should only contain the variables it is actually using. We might want to add an doc/CFG_FILES to describe all possible variables in detail. This would be the responsibility of plugin maintainers for plugin variables, of course.

##
## 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/CFG_FILES.
##


#################################
## Section: Required Variables ##
#################################

TBG_wallTime="23:53:00"

TBG_gpu_x=1
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"


#################################
## 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_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_analyser="!TBG_ipngYX                   \
              !TBG_eBin                     \
              !TBG_iBin                     \
              !TBG_pngYX                    \
              !TBG_pngYZ                    \
              --ions_cnt.period 100         \
              --elec_cnt.period 100         \
              --energy_fields.period 10     \
              --energy_e.period 10          \
              --energy_i.period 10"


#################################
## Section: Program Parameters ##
#################################

TBG_programParams="--periodic 1 1 1 \
                   !TBG_devices     \
                   !TBG_gridSize    \
                   !TBG_steps       \
                   !TBG_analyser    \
                   | tee output"

# TOTAL number of GPUs
TBG_tasks="$(( TBG_gpu_x * TBG_gpu_y * TBG_gpu_z ))"

"$TBG_cfgPath"/submitAction.sh

@f-schmitt
Copy link
Member Author

Note: we might want to prefix variables that can be passed to programParams (_pp_ ?) to distinct them from those that are only used to create the former.

@ax3l
Copy link
Member

ax3l commented Jan 24, 2014

I think the problem right now is, that depending on your compiled-in plugins and depending on the enabled species, the available program options vary heavily.

I actually like the hints like in examples/LaserWakefield/submit/0016gpus.cfg when I am a "user":

...
TBG_analyser="!TBG_pngYX                    \
              !TBG_pngYZ" 


# Pre-defined macros you may like to use
#
# create preview images (png)
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 png
IonsYX"

# hdf5 output
TBG_hdf5="--hdf5.period 100 --hdf5.compression"
#--hdf5.file lwfa

# sum up total energy
TBG_sumEnergy="--energy_fields.period 10 --energy_e.period 10 --energy_i.period 10"
# count the number of macro particles
TBG_macroCount="--elec_cnt.period 100 --ions_cnt.period 100"

# create a particle-energy histogram
# [in keV]
TBG_eBin="--bin_e.period 10 --bin_e.binCount 1024 --bin_e.minEnergy 0 --bin_e.maxEnergy 150"
TBG_iBin="--bin_i.period 10 --bin_i.binCount 1024 --bin_i.minEnergy 0 --bin_i.maxEnergy 150"

# 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"
...

@f-schmitt
Copy link
Member Author

I like the hints too, but I don't want them to be duplicated over all cfg files.
I would say the user should know which species/plugins are enabled and can then lookup the available vars in a central, easy to maintain (!) file

@ax3l
Copy link
Member

ax3l commented Jan 24, 2014

probably a good idea... (you got me at easy to maintain...)
so let us put a comment like this in each cfg file instead:

...
TBG_analyser="!TBG_pngYX                    \
              !TBG_pngYZ" 


# Pre-defined macros you may like to use
# Hint: find more makros at doc/cfg/TBG_makros.cfg

# create preview images (png)
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"

or similar? Contains only the makros that are used and a link to further documentation.

@f-schmitt
Copy link
Member Author

Exactly. That's what I meant in the header anyway:

For a detailed description of PIConGPU
## configuration files including all available variables, see doc/CFG_FILES.

A second hint is fine, too.

@ax3l
Copy link
Member

ax3l commented Jan 24, 2014

Great, agreed!

@f-schmitt
Copy link
Member Author

@PrometheusPi could you please tell me the description for the --radiation flag, similar to --png below:

# ?
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.
TBG_E_pngYZ="--png_e.period 10 --png_e.axis yz --png_e.slicePoint 0.5 --png_e.folder pngElectronsYZ"

@PrometheusPi
Copy link
Member

@f-schmitt-zih I will add this to the Plugin wiki as fast as possible (today)
Sorry for the delay.

@PrometheusPi
Copy link
Member

@f-schmitt-zih
The description of the radiation flags is now in wiki:Plugins
If I should add these descriptions in the *.cfg files, tell me.

@ax3l
Copy link
Member

ax3l commented Jan 27, 2014

Wow, 👍
I guess @f-schmitt-zih would love to read a two-liner instead of the full example, may we put in a link for the reader for extended documentation.

@f-schmitt
Copy link
Member Author

That's totally fine, I can shorten these and put them in, thx for all the work!

@f-schmitt
Copy link
Member Author

fixed with #153, closing

psychocoderHPC pushed a commit to psychocoderHPC/picongpu that referenced this issue Oct 28, 2019
4578ae151 Merge pull request ComputationalRadiationPhysics#128 from psychocoderHPC/topic-updateAlpakaToCurrent0.4.0dev
0c090e536 Merge commit 'dd8afa5cec90a1398b8da3f9cd7d30aa59664cb5' into topic-updateAlpakaToCurrent0.4.0dev
dd8afa5ce Squashed 'alpaka/' changes from 0a2b6161..d5e59590
767768a88 rename alpaka queue names
8c227fbb6 Merge pull request ComputationalRadiationPhysics#130 from psychocoderHPC/fix-configHeaderTest
a6c3da536 fix `config header` test
a439c9d6b Merge pull request ComputationalRadiationPhysics#129 from psychocoderHPC/topic-updateTravisCMakeTo3.15.4
2e0daaf1b update tavis CMake to 3.15.4
04698e9c6 Merge pull request ComputationalRadiationPhysics#123 from SimeonEhrig/ci_enable_backends
25e64b623 time command add to ci test
c559bf432 Merge pull request ComputationalRadiationPhysics#107 from SimeonEhrig/init-gitlab-ci
488a2e95f Merge pull request ComputationalRadiationPhysics#117 from tdd11235813/pr-fixes-atomics
c2916be68 Adds atomicAnd, atomicXor, atomicOr.
7c330a5a9 Merge pull request ComputationalRadiationPhysics#112 from psychocoderHPC/topic-standaloneHeader
d84f2fdea configuration header
6a97c1cf1 Merge pull request ComputationalRadiationPhysics#113 from fwyzard/dev_cuplaGetErrorName
d210a37a0 Add cuplaGetErrorName with the same functionality as cuplaGetErrorString
d050bf3cd Merge pull request ComputationalRadiationPhysics#111 from tdd11235813/doc-subtree
19cf46913 Describes how to pull subtree as generic git author.
4ecc143f4 Merge pull request ComputationalRadiationPhysics#103 from tdd11235813/dev
16c806e68 Merge pull request ComputationalRadiationPhysics#104 from tdd11235813/dev-targets
43fd52319 Add gitlab-ci.yml for GitLab CI tests
fd37e7b7d Alpaka as git subtree instead of git submodule.
16b455107 Squashed 'alpaka/' content from commit 0a2b6161
69b79bd95 Merge commit '16b4551075f93cdd71309433b02936a152dfee9f' as 'alpaka'
fa5cc5260 Removes alpaka git module.
67485d510 Some stylistic changes.
4f2b9c019 CUPLA_ADD_EXECUTABLE links cupla target. Target provides c++11.

git-subtree-dir: thirdParty/cupla
git-subtree-split: 4578ae151ee6ac5c7810f76ff0c3a4506158807d
psychocoderHPC pushed a commit to psychocoderHPC/picongpu that referenced this issue Jan 8, 2020
0594a68a0 Merge pull request ComputationalRadiationPhysics#140 from psychocoderHPC/topic-cuplaTargetBehavior
0991f2c6e compile cupla interfaces into static cupla library
914a87133 Merge pull request ComputationalRadiationPhysics#136 from psychocoderHPC/topic-refactorKernelExecution
0027076c7 Merge pull request ComputationalRadiationPhysics#137 from psychocoderHPC/topic-supportForAlpakaOMP4Backend
d2b118662 Merge pull request ComputationalRadiationPhysics#139 from psychocoderHPC/fix-configHeader
16c084970 support for alpaka OMP4 backend
e990d63c5 fix config header
e2048f565 refactor cupla kernel execution
d5f969a93 Merge pull request ComputationalRadiationPhysics#132 from sbastrakov/doc-clarifyIncludeOrder
cca400a60 Clarify documentation of inclusion order
4578ae151 Merge pull request ComputationalRadiationPhysics#128 from psychocoderHPC/topic-updateAlpakaToCurrent0.4.0dev
0c090e536 Merge commit 'dd8afa5cec90a1398b8da3f9cd7d30aa59664cb5' into topic-updateAlpakaToCurrent0.4.0dev
dd8afa5ce Squashed 'alpaka/' changes from 0a2b6161..d5e59590
767768a88 rename alpaka queue names
8c227fbb6 Merge pull request ComputationalRadiationPhysics#130 from psychocoderHPC/fix-configHeaderTest
a6c3da536 fix `config header` test
a439c9d6b Merge pull request ComputationalRadiationPhysics#129 from psychocoderHPC/topic-updateTravisCMakeTo3.15.4
2e0daaf1b update tavis CMake to 3.15.4
04698e9c6 Merge pull request ComputationalRadiationPhysics#123 from SimeonEhrig/ci_enable_backends
25e64b623 time command add to ci test
c559bf432 Merge pull request ComputationalRadiationPhysics#107 from SimeonEhrig/init-gitlab-ci
488a2e95f Merge pull request ComputationalRadiationPhysics#117 from tdd11235813/pr-fixes-atomics
c2916be68 Adds atomicAnd, atomicXor, atomicOr.
7c330a5a9 Merge pull request ComputationalRadiationPhysics#112 from psychocoderHPC/topic-standaloneHeader
d84f2fdea configuration header
6a97c1cf1 Merge pull request ComputationalRadiationPhysics#113 from fwyzard/dev_cuplaGetErrorName
d210a37a0 Add cuplaGetErrorName with the same functionality as cuplaGetErrorString
d050bf3cd Merge pull request ComputationalRadiationPhysics#111 from tdd11235813/doc-subtree
19cf46913 Describes how to pull subtree as generic git author.
4ecc143f4 Merge pull request ComputationalRadiationPhysics#103 from tdd11235813/dev
16c806e68 Merge pull request ComputationalRadiationPhysics#104 from tdd11235813/dev-targets
43fd52319 Add gitlab-ci.yml for GitLab CI tests
fd37e7b7d Alpaka as git subtree instead of git submodule.
16b455107 Squashed 'alpaka/' content from commit 0a2b6161
69b79bd95 Merge commit '16b4551075f93cdd71309433b02936a152dfee9f' as 'alpaka'
fa5cc5260 Removes alpaka git module.
67485d510 Some stylistic changes.
4f2b9c019 CUPLA_ADD_EXECUTABLE links cupla target. Target provides c++11.

git-subtree-dir: thirdParty/cupla
git-subtree-split: 0594a68a0d9bdbfc949391f83473d4734575a7f5
psychocoderHPC pushed a commit to psychocoderHPC/picongpu that referenced this issue Mar 10, 2020
36f6ca909 refactor cupla kernel execution
d5f969a93 Merge pull request ComputationalRadiationPhysics#132 from sbastrakov/doc-clarifyIncludeOrder
cca400a60 Clarify documentation of inclusion order
4578ae151 Merge pull request ComputationalRadiationPhysics#128 from psychocoderHPC/topic-updateAlpakaToCurrent0.4.0dev
0c090e536 Merge commit 'dd8afa5cec90a1398b8da3f9cd7d30aa59664cb5' into topic-updateAlpakaToCurrent0.4.0dev
dd8afa5ce Squashed 'alpaka/' changes from 0a2b6161..d5e59590
767768a88 rename alpaka queue names
8c227fbb6 Merge pull request ComputationalRadiationPhysics#130 from psychocoderHPC/fix-configHeaderTest
a6c3da536 fix `config header` test
a439c9d6b Merge pull request ComputationalRadiationPhysics#129 from psychocoderHPC/topic-updateTravisCMakeTo3.15.4
2e0daaf1b update tavis CMake to 3.15.4
04698e9c6 Merge pull request ComputationalRadiationPhysics#123 from SimeonEhrig/ci_enable_backends
25e64b623 time command add to ci test
c559bf432 Merge pull request ComputationalRadiationPhysics#107 from SimeonEhrig/init-gitlab-ci
488a2e95f Merge pull request ComputationalRadiationPhysics#117 from tdd11235813/pr-fixes-atomics
c2916be68 Adds atomicAnd, atomicXor, atomicOr.
7c330a5a9 Merge pull request ComputationalRadiationPhysics#112 from psychocoderHPC/topic-standaloneHeader
d84f2fdea configuration header
6a97c1cf1 Merge pull request ComputationalRadiationPhysics#113 from fwyzard/dev_cuplaGetErrorName
d210a37a0 Add cuplaGetErrorName with the same functionality as cuplaGetErrorString
d050bf3cd Merge pull request ComputationalRadiationPhysics#111 from tdd11235813/doc-subtree
19cf46913 Describes how to pull subtree as generic git author.
4ecc143f4 Merge pull request ComputationalRadiationPhysics#103 from tdd11235813/dev
16c806e68 Merge pull request ComputationalRadiationPhysics#104 from tdd11235813/dev-targets
43fd52319 Add gitlab-ci.yml for GitLab CI tests
fd37e7b7d Alpaka as git subtree instead of git submodule.
16b455107 Squashed 'alpaka/' content from commit 0a2b6161
69b79bd95 Merge commit '16b4551075f93cdd71309433b02936a152dfee9f' as 'alpaka'
fa5cc5260 Removes alpaka git module.
67485d510 Some stylistic changes.
4f2b9c019 CUPLA_ADD_EXECUTABLE links cupla target. Target provides c++11.

git-subtree-dir: thirdParty/cupla
git-subtree-split: 36f6ca90972028fbf45e0aa5ed4fd7c9ea50f03a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation regarding documentation or wiki discussions
Projects
None yet
Development

No branches or pull requests

3 participants