effis's People
effis's Issues
effis and spack-installed executables
While I'm at it, here's another observation: Adapting a sample effis yaml file to use one's own spack-installed executables is cumbersome.
I don't think there's any real simple solution, in particular given that one may have multiple installs around. But one thing that'd help is if one could do something like
executable_path: $(spack location-i gene)
in the yaml file (maybe yaml itself already allows something like that -- I don't know.)
Similarly, it'd be nice if one could use $MEMBERWORK
or something when specifying the run dir.
And, what, there's more ;) Instead of having to change the run dir manually, it'd also be nice if there were an option to say run_dir_base=/path/to
, and effis made a new subdirectory every time you run effis-compose
. (This is just an idea I just had, I haven't thought about it in detail, so there may be issues with it, but in particular during debugging it often happens that I'll submit one job after the other...)
spack load effis -- will use correct python version?
So another issue we had today was that after spack load effis python-type=full
, it didn't work because the correct version of python wasn't in the path.
However, i cannot reproduce this -- for me, the spack load
does put the correct python into the path, so I don't know what happened -- I just figured I'd mention it, anyway.
specifying gpu requirements on summit
In the composition file here:
https://github.com/SCOREC/testcases/blob/cplEffis/run_1/summit/run_1.yaml
how can I request that each process for the coupler
has one GPU associated with it? I found the use-gpus
logic
Lines 787 to 788 in a80650d
but was not sure how to use it. My naive attempt to add
use-gpus: 1
in the coupler:
section failed with a effis-compose.py
indexing error.
Note, if this is not supported yet we can make Kokkos optional in the coupler to avoid this.
Remove `.py` from user-facing commands?
When Sameer tried to build and run wdmapp today on Rhea, one of the many issues we hit was some confusion because some of the effis commands have the .py
suffix, but others do not. (In particular, effis-compose.py
vs effis-submit
.) I can submit a PR to remove the .py
from all, if @suchyta1 agrees?
Specifying command line options for job submission command
Currently, it is not possible to specify command line options for the job submission command (at least for sbatch
in case of SLURM) in the EFFIS input file. I would need this because some clusters I work with use a submission filter that rejects jobs if certain job constraints are not specified in the job submission command.
It would be great to have this capability in EFFIS.
is machine->job_setup required in composition files?
Installing effis (spack install effis
following the instructions here https://wdmapp.readthedocs.io/en/latest/build/build.html#build-wdmapp-label) on Rhea and running effis-compose.py
appears to require job_setup: /path/to/script
for the last line of .cheetah/<user>/campaign-env.sh
to be generated correctly. Specifically, I created three yaml composition files, one with job_setup:
, one without, and one with an empty job_setup
field:
$ diff run_externalCpl_cws.yaml run_externalCpl_cws_noSetup.yaml
10c10
< rundir: /gpfs/alpine/phy122/scratch/cwsmith/testWdmCpl
---
> rundir: /gpfs/alpine/phy122/scratch/cwsmith/testWdmCpl_noSetup
16d15
< job_setup: run_externalCpl_setup.sh
$ diff run_externalCpl_cws.yaml run_externalCpl_cws_emptySetup.yaml
10c10
< rundir: /gpfs/alpine/phy122/scratch/cwsmith/testWdmCpl
---
> rundir: /gpfs/alpine/phy122/scratch/cwsmith/testWdmCpl_emptySetup
16c16
< job_setup: run_externalCpl_setup.sh
---
> job_setup:
Then ran effis-compose.py
on the three yaml files (note, they output to different run directories):
$ effis-compose.py run_externalCpl_cws_noSetup.yaml
$ effis-compose.py run_externalCpl_cws.yaml)
$ effis-compose.py run_externalCpl_cws_emptySetup.yaml
And then looking at the two campaign-env.sh
files we see an empty 'source' for the cp
command is in the 'noSetup' output
cwsmith@rhea-login6g: /gpfs/alpine/phy122/scratch/cwsmith $ grep -n cp testWdmCpl*/.cheetah/cwsmith/campaign-env.sh
testWdmCpl/.cheetah/cwsmith/campaign-env.sh:12:cp "/gpfs/alpine/phy122/scratch/cwsmith/testcases/run_1/rhea/run_externalCpl_setup.sh" "/gpfs/alpine/phy122/scratch/cwsmith/testWdmCpl/.cheetah/cwsmith/."
testWdmCpl_emptySetup/.cheetah/cwsmith/campaign-env.sh:12:cp "" "/gpfs/alpine/phy122/scratch/cwsmith/testWdmCpl_emptySetup/.cheetah/cwsmith/."
testWdmCpl_noSetup/.cheetah/cwsmith/campaign-env.sh:12:cp "" "/gpfs/alpine/phy122/scratch/cwsmith/testWdmCpl_noSetup/.cheetah/cwsmith/."
Running effis-submit
on a yaml with the empty 'source' arg for the cp command produces the following error. Note, I appended -x
to the #!/bin/bash
at the top of effis-submit
to see where it was failing:
$ effis-submit /gpfs/alpine/phy122/scratch/cwsmith/testWdmCpl_noSetup/
+ '[' -z '' ']'
+ case "$-" in
+ __lmod_vx=x
+ '[' -n x ']'
+ set +x
Shell debugging temporarily silenced: export LMOD_SH_DBG_ON=1 for this output (/sw/rhea/lmod/8.2.10/init/bash)
Shell debugging restarted
+ unset __lmod_vx
+ mydir=/gpfs/alpine/phy122/scratch/cwsmith/testcases/run_1/rhea
+ '[' -f /gpfs/alpine/phy122/scratch/cwsmith/testWdmCpl_noSetup//run/.kittie-script.sh ']'
+ cd /gpfs/alpine/phy122/scratch/cwsmith/testWdmCpl_noSetup//.cheetah/cwsmith
+ ./run-all.sh
cp: cannot stat ââ: No such file or directory
Failed to load compaign-env.sh, aborting
+ cd /gpfs/alpine/phy122/scratch/cwsmith/testcases/run_1/rhea
util/effis-cpp.py fails with python 2.7.5
It appears there is a bug in the argparse
module with 2.7.5 that was resolved by 2.7.12. Specifically, on Summit using the default system python (/usr/bin/python
) the command:
cd examples/simple/Fortran
../../../util/effis-cpp.py 'repo' -t ~/killme/effis .
exits silently as the args.which
variable is set to top
instead of repo
. Running with python 2.7.12 or 2.7.18 works as expected (module load python/2.7.12
); the source files are copied to the specified dir. I stumbled upon this when the spack install failed with the default summit python.
Assuming this is correct, I think we should add a spack dependency on 2.7.12 (not sure if a lower version will work).
effis preprocessor puts in a tab?
It looks like effis puts a tab into the gene source code. It's just a warning at this point, but would be nice to fix.
/root/src/gene-dev/build-spack-ubuntu-coupling/src/gene_subroutine-effis.F90:141:1:
call kittie_initialize(my_mpi_comm_world, adios_cfg, ngroups=6, numtimers=1)
1
Warning: Nonconforming tab character at (1) [-Wtabs]
ADIOS 2.9 C API deprecated init function
Please note that adios2_init() has removed the debug_mode boolean parameter and hence effis/src/Fortran/kittie.F90:647:80:
needs to be updated
[ 8%] Building Fortran object src/Fortran/CMakeFiles/kittie_f.dir/kittie.F90.o
/home/adios/Software/effis/effis/src/Fortran/kittie.F90:647:80:
647 | call adios2_init(kittie_adios, trim(xml), kittie_comm, adios2_debug_mode_on, iierr)
| 1
Error: Symbol ‘adios2_debug_mode_on’ at (1) has no IMPLICIT type
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.