VASP executable not found when running Si test workflow

108 views
Skip to first unread message

Nicholas Wagner

unread,
Aug 13, 2017, 1:35:40 AM8/13/17
to atomate
Hello,

I am trying to perform the Si structure optimization test workflow on the Stampede2 cluster, but I am getting a traceback that seems to indicate the vasp executable I thought I specified is not being used. On Stampede2, we have to specify "ibrun vasp_std", 
but the custodian seems to have ended up looking for just "vasp". This is despite specifying my vasp_cmd in the my_fworker.yaml file. I have copied the excerpt from the launches collection on my fireworks database below. Is there somewhere else I need to 
force atomate to use the vasp_cmd I want? Like when I create the workflow?

Best,
Nick Wagner

>>>>>>>>
{
    "_id": {
        "$oid": "598fd760915f24b1bc05eb95"
    },
    "fworker": {
        "name": "stampede2",
        "category": "",
        "query": "{}",
        "env": {
            "db_file": "/home1/03229/tg825281/anaconda3/envs/atomate_env/config/db.json",
            "vasp_cmd": "ibrun vasp_std -n 128"
        }
    },
    "fw_id": 3,
    "launch_dir": "/scratch/03229/tg825281/block_2017-08-13-04-05-29-301218/launcher_2017-08-13-04-36-49-070734",
    "ip": "206.76.200.16",
    "trackers": [],
    "action": {
        "stored_data": {
            "_message": "runtime error during task",
            "_task": {
                "vasp_cmd": "vasp",
                "job_type": "double_relaxation_run",
                "max_force_threshold": 0.25,
                "ediffg": null,
                "auto_npar": ">>auto_npar<<",
                "_fw_name": "{{atomate.vasp.firetasks.run_calc.RunVaspCustodian}}"
            },
            "_exception": {
                "_stacktrace": "Traceback (most recent call last):\n  File \"/home1/03229/tg825281/anaconda3/envs/atomate_env/codes/fireworks/fireworks/core/rocket.py\", line 253, in run\n    m_action = t.run_task(my_spec)\n  File \"/home1/03229/tg825281/anaconda3/envs/atomate_env/codes/atomate/atomate/vasp/firetasks/run_calc.py\", line 185, in run_task\n    c.run()\n  File \"/home1/03229/tg825281/anaconda3/envs/atomate_env/codes/custodian/custodian/custodian.py\", line 320, in run\n    self._run_job(job_n, job)\n  File \"/home1/03229/tg825281/anaconda3/envs/atomate_env/codes/custodian/custodian/custodian.py\", line 376, in _run_job\n    p = job.run()\n  File \"/home1/03229/tg825281/anaconda3/envs/atomate_env/codes/custodian/custodian/vasp/jobs.py\", line 205, in run\n    p = subprocess.Popen(cmd, stdout=f_std, stderr=f_err)\n  File \"/home1/03229/tg825281/anaconda3/envs/atomate_env/lib/python3.6/subprocess.py\", line 707, in __init__\n    restore_signals, start_new_session)\n  File \"/home1/03229/tg825281/anaconda3/envs/atomate_env/lib/python3.6/subprocess.py\", line 1333, in _execute_child\n    raise child_exception_type(errno_num, err_msg)\nFileNotFoundError: [Errno 2] No such file or directory: 'vasp'\n",
                "_details": null
            }

Anubhav Jain

unread,
Aug 13, 2017, 3:10:39 AM8/13/17
to Nicholas Wagner, atomate
Hi Nick

From your output, your my_fworker.yaml looks to be set up correctly (the "env" key shows a key called "vasp_cmd" with your desired command). However, the actual workflow isn't using the env value for the VASP command. If you look at this part: "vasp_cmd": "vasp" - that means it is going to just directly execute "vasp". If it instead said "vasp_cmd": ">>vasp_cmd<<", that would be an instruction to take the value from env.vasp_cmd key. 

I am not sure how you created the workflow in the first place; the default workflows use ">>vasp_cmd<<" as the default. Can you point me to which Si test workflow you are referring to? (where in the code or documentation)

Best,
Anubhav

--
You received this message because you are subscribed to the Google Groups "atomate" group.
To unsubscribe from this group and stop receiving emails from it, send an email to atomate+unsubscribe@googlegroups.com.
To post to this group, send email to ato...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/atomate/45e88a9f-e8cf-44c9-b538-5ad74347d213%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Best,
Anubhav

Nicholas Wagner

unread,
Aug 13, 2017, 10:10:06 AM8/13/17
to atomate, AJ...@lbl.gov
Thanks for your reply. I am following the documentation at https://hackingmaterials.github.io/atomate/installation.html
The test workflow command there is: atwf add -l vasp -s optimize_only.yaml -m mp-149
To unsubscribe from this group and stop receiving emails from it, send an email to atomate+u...@googlegroups.com.

To post to this group, send email to ato...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/atomate/45e88a9f-e8cf-44c9-b538-5ad74347d213%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Best,
Anubhav

Anubhav Jain

unread,
Aug 13, 2017, 12:27:51 PM8/13/17
to atomate
Hi Nick

Ok understood. I actually never use "atwf" or directly load workflows from files (I and others call the Python function instead), so I didn't catch the fact that this method doesn't really make it easy to set your VASP command to ">>vasp_cmd<<" and just defaults to "vasp". I will forward this to the relevant people to see if they can design something to help.

In the meantime, you can replace the command in the documentation with:

atwf add -l vasp -p wf_bandstructure -m mp-149

This will add a workflow using the Python function atomate.vasp.workflows.presets.core.wf_bandstructure. You can also add other workflows in that same module, e.g., to run bulk modulus instead run:

atwf add -l vasp -p wf_bulk_modulus -m mp-149

Hope this gets you up and running without issues. As mentioned, we'll try to get an official "fix" to the docs as soon as possible

Anubhav Jain

unread,
Aug 13, 2017, 1:28:23 PM8/13/17
to atomate

Nicholas Wagner

unread,
Aug 14, 2017, 12:30:47 PM8/14/17
to atomate
Thanks for the help. I ran the bandstructure command you mentioned, and it crashed due to having the scratch_dir unspecified in the my_fworker.yaml file. Once I added the environment variable there, the calculation succeeded. Now on to the next part of the tutorial!

Anubhav Jain

unread,
Aug 14, 2017, 1:44:17 PM8/14/17
to atomate
Ok good to hear!

FYI, I updated the installation instructions to set "null" for the scratch_dir (which won't use a scratch_dir)

Reply all
Reply to author
Forward
0 new messages