This page describes how to set up fireworks and atomate.
module load python
conda create -n cms python=3.10module load python/3.8
conda create -n cms python=3.9module load python/3.9.12
conda create -n cms python=3.9module load python
conda create -n cms python=3.10module load python
conda create -n cms python=3.10source activate cms
conda install numpy scipy matplotlib pandaspip install atomate2 fireworks
pip install ruamel.yaml==0.17.40source activate cms
cd ~/.conda/envs/cms
mkdir code
cd code
git clone https://github.com/materialsproject/pymatgen.git
git clone https://github.com/materialsproject/pymatgen-db.git
git clone https://github.com/materialsproject/fireworks.git
git clone https://github.com/materialsproject/custodian.git
git clone https://github.com/hackingmaterials/atomate.git
cd pymatgen
python setup.py develop
pip install -r requirements.txt
cd ..
cd pymatgen-db
python setup.py develop
pip install -r requirements.txt
cd ..
cd fireworks
python setup.py develop
pip install -r requirements.txt
cd ..
cd custodian
python setup.py develop
pip install -r requirements.txt
cd ..
cd atomate
python setup.py develop
pip install -r requirements.txt
cd ..cd ~
mkdir fw_config
cd fw_configCONFIG_FILE_DIR: /global/homes/FIRST_LETTER/YOUR_USERNAME/fw_config
QUEUE_UPDATE_INTERVAL: 5
ECHO_TEST: "cms fw_config activated"CONFIG_FILE_DIR: /global/home/users/YOUR_USERNAME/fw_config
QUEUE_UPDATE_INTERVAL: 5
ECHO_TEST: "cms fw_config activated"CONFIG_FILE_DIR: /HOME_DIRECTORY_PATH/fw_config
QUEUE_UPDATE_INTERVAL: 5
ECHO_TEST: "cms fw_config activated"CONFIG_FILE_DIR: /home/YOUR_USERNAME/fw_config/
QUEUE_UPDATE_INTERVAL: 5
ECHO_TEST: "cms fw_config activated"{
"host": "mongodb07.NERSC.gov",
"port": 27017,
"database": "fw_db_name",
"collection": "tasks",
"admin_password": "<admin_password>",
"admin_user": "<admin_username>",
"readonly_password": "<readonly_password>",
"readonly_user": "<readonly_username>",
"aliases_config": null
}host: mongodb07.NERSC.gov
port: 27017
name: "fw_db_name"
username: "<admin_username>"
password: "<admin_password>"
logdir: null
Istrm_lvl: DEBUG
user_indices: []
wf_user_indices: []name: NERSC_fworker
category: ''
query: '{}'
env:
db_file: /global/homes/FIRST_LETTER/YOUR_USERNAME/fw_config/db.json
vasp_cmd: 'srun -n 64 -c 4 --cpu_bind=cores vasp_std'
gamma_vasp_cmd: 'srun -n 64 -c 4 --cpu_bind=cores vasp_gam'
scratch_dir: /global/cscratch1/sd/YOUR_USERNAME
incar_update:name: savio_fworker
category: ''
query: '{}'
env:
db_file: /global/home/users/YOUR_USERNAME/fw_config/db.json
vasp_cmd: 'mpirun --bind-to core vasp_std'
gamma_vasp_cmd: 'mpirun --bind-to core vasp_gam'
scratch_dir: /global/scratch/YOUR_USERNAME/
incar_update:name: lrc_fworker
category: ''
query: '{}'
env:
db_file: /global/home/users/YOUR_USERNAME/fw_config/db.json
vasp_cmd: 'mpirun --bind-to core vasp_std'
gamma_vasp_cmd: 'mpirun --bind-to core vasp_gam'
scratch_dir: /global/scratch/users/YOUR_USERNAME/
incar_update:name: gpu_fworker
category: ''
query: '{}'
env:
db_file: /global/homes/FIRST_LETTER/YOUR_USERNAME/fw_config/db.json
vasp_cmd: 'srun -n 4 -c 16 --gpu-bind=single:1 vasp_std'
gamma_vasp_cmd: 'srun -n 4 -c 16 --gpu-bind=single:1 vasp_gam'
scratch_dir: /pscratch/sd/FIRST_LETTER/YOUR_USERNAME
incar_update:name: NREL_fworker
category: ''
query: '{}'
env:
db_file: /home/YOUR_USERNAME/fw_config/db.json
vasp_cmd: 'srun -n 64 -c 1 --cpu_bind=cores vasp_std'
gamma_vasp_cmd: 'srun -n 64 -c 1 --cpu_bind=cores vasp_gam'
scratch_dir: /projects/PROJECT_NAME/YOUR_USERNAME
incar_update:_fw_name: CommonAdapter
_fw_q_type: SLURM
rocket_launch: rlaunch -w /global/homes/FIRST_LETTER/YOUR_USERNAME/fw_config/my_fworker.yaml singleshot
nodes: 1
walltime: '24:00:00'
account: matgen
job_name: knl_launcher
signal: SIGINT@60
qos: regular
constraint: 'cpu'
pre_rocket: |
source activate cms
module load vasp-tpc/5.4.4-knl
export OMP_PROC_BIND=true
export OMP_PLACES=threads
export OMP_NUM_THREADS=1_fw_name: CommonAdapter
_fw_q_type: SLURM
rocket_launch: rlaunch -w /global/home/users/YOUR_USERNAME/fw_config/my_fworker.yaml singleshot
nodes: 1
walltime: '24:00:00'
account: co_lsdi
job_name: knl_launcher
queue: savio2_knl
qos: lsdi_knl2_normal
ntasks: 64
pre_rocket: |
source activate cms
module load vasp
export OMP_PROC_BIND=true
export OMP_PLACES=threads
export OMP_NUM_THREADS=1
post_rocket: null_fw_name: CommonAdapter
_fw_q_type: SLURM
rocket_launch: rlaunch -w /global/home/users/YOUR_USERNAME/fw_config/my_fworker.yaml singleshot
nodes: 1
ntasks: 64
queue: cf1
walltime: '06:00:00'
account: lr_mp
job_name: lrc_cpu_launcher
signal: SIGINT@60
qos: condo_mp_cf1
pre_rocket: |
source activate cms
module load vasp/6.prerelease
export OMP_PROC_BIND=true
export OMP_PLACES=threads
export OMP_NUM_THREADS=1_fw_name: CommonAdapter
_fw_q_type: SLURM
rocket_launch: rlaunch -w /global/homes/FIRST_LETTER/YOUR_USERNAME/fw_config/perlmutter/my_fworker.yaml singleshot
nodes: 1
walltime: '06:00:00'
account: matgen_g
job_name: gpu_launcher
signal: SIGINT@60
qos: regular
constraint: 'gpu'
pre_rocket: |
source activate cms
module load vasp/6.2.1-gpu
export SLURM_CPU_BIND="cores"
unset MPICH_GPU_SUPPORT_ENABLED_fw_q_type: SLURM
rocket_launch: rlaunch -w /home/YOUR_USERNAME/fw_config/my_fworker.yaml rapidfire --max_loops 5
nodes: 1
ntasks_per_node: 128
walltime: '12:28:00'
account: PROJECT_NAME
job_name: job_name_var
exclude_nodes: 'c5-17,c1-39,c5-27,c1-61,c12-6,c1-37,c10-27,c10-18,c1-36,c9-13,c4-6,c1-58,c6-43,c9-15,c4-48,c5-55,c1-38,c7-8,c1-63,c10-49,c4-22'
signal: SIGINT@60
queue: standard
pre_rocket: |
export ATOMATE2_CONFIG_FILE="/home/YOUR_USERNAME/fw_config/atomate2/config/atomate2.yaml"
export JOBFLOW_CONFIG_FILE="/home/YOUR_USERNAME/fw_config/atomate2/config/jobflow.yaml"
export FW_CONFIG_FILE="/home/YOUR_USERNAME/fw_config/FW_config.yaml"
# load conda environment below if needed
source activate cms
module load vasp/cpu_6.4.2-intel
module load gcc
export OMP_PROC_BIND=true
export OMP_PLACES=threads
export OMP_NUM_THREADS=1
export KMP_AFFINITY=balanced _fw_name: CommonAdapter
_fw_q_type: SLURM
rocket_launch: rlaunch -w /home/USERNAME/fw_config/my_fworker.yaml rapidfire --max_loops 5
nodes: 1
walltime: '24:00:00'
job_name: vasp_launcher
signal: SIGINT@60
queue: standard
account: drxkp
pre_rocket: |
conda activate at2
module load vasp/6.4.2
module load craype-x86-spr #specifies sapphire rapids architecture
export OMP_NUM_THREADS=1
export KMP_AFFINITY=balanced # for codes built with intel compilers
ulimit -Ss unlimited #specific to resolve for SIGSEGV errormodule load python
export PMG_VASP_PSP_DIR='/global/cfs/cdirs/matgen/POTCARs'
export FW_CONFIG_FILE='/global/homes/FIRST_LETTER/YOUR_USERNAME/fw_config/FW_config.yaml'
alias cdconfig='cd ~/fw_config'module load python/3.8
export PMG_VASP_PSP_DIR=/clusterfs/cloudcuckoo/software/POTCARs
export FW_CONFIG_FILE='/global/home/users/YOUR_USERNAME/fw_config/FW_config.yaml'
alias cdconfig='cd ~/fw_config'module load python/3.9.12
export PMG_VASP_PSP_DIR=/clusterfs/mp/software/POTCARs
export FW_CONFIG_FILE='/global/home/users/YOUR_USERNAME/fw_config/FW_config.yaml'
alias cdconfig='cd ~/fw_config'export FW_CONFIG_FILE='/HOME_DIRECTORY_PATH/fw_config/FW_config.yaml'
alias cdconfig='cd ~/fw_config'module load python
export PMG_VASP_PSP_DIR='/global/cfs/cdirs/matgen/POTCARs'
export FW_CONFIG_FILE='/global/homes/FIRST_LETTER/YOUR_USERNAME/fw_config/FW_config.yaml'
alias cdconfig='cd ~/fw_config'pmg config --add PMG_MAPI_KEY <USER_API_KEY>
pmg config --add PMG_VASP_PSP_DIR /global/cfs/cdirs/matgen/POTCARspmg config --add PMG_MAPI_KEY <USER_API_KEY>
pmg config --add PMG_VASP_PSP_DIR /clusterfs/cloudcuckoo/POTCARspmg config --add PMG_MAPI_KEY <USER_API_KEY>
pmg config --add PMG_VASP_PSP_DIR /clusterfs/mp/software/POTCARsecho $FW_CONFIG_FILEcat /HOME_DIRECTORY_PATH/fw_config/FW_config.yamlcat YOUR_FW_CONFIG_FILE_PATH/my_launchpad.yamllpad resetfrom pymatgen.ext.matproj import MPRester
from fireworks import LaunchPad
from atomate.vasp.workflows.presets.core import wf_static
from atomate.vasp import powerups
mpr = MPRester()
structure = mpr.get_structure_by_material_id("mp-145")
wf = wf_static(structure)
wf = powerups.add_common_powerups(wf, {"scratch_dir":">>scratch_dir<<"})
lp = LaunchPad.from_file('YOUR_FW_CONFIG_FILE_PATH/fw_config/my_lp.yaml')
lp.add_wf(wf)lpad get_fws -s READYconda activate cms
echo $FW_CONFIG_FILE
qlaunch singleshotconda activate cms
echo $FW_CONFIG_FILE
qlaunch rapidfire --nlaunches 1lpad get_fws -s RUNNINGlpad rerun_fws -i <fw_id>lpad rerun_fws -s FIZZLEDlpad webguiscp <username>@dtn01.NERSC.gov:~/fw_config/my_launchpad.yaml .
