Skip to content

Tutorial Y

Lee Burton edited this page Jul 12, 2025 · 16 revisions

Workflows

A job is an individual unit of computing.

A worflow is a series of jobs that must be performed to recieve a desired output. These are also called pipelines. In order to be truly high-throughput we need automated workflows.

There are many workflow management tools available. Aiida, Joblib, AFlow, ASE etc.

These are used to build automated databases, such as the Materials Project, OQMD, Materials Cloud, Jarvis etc.

JobFlow is the successor to Fireworks, which is what was used to build the Materials Project.

Workflows are executed by Workflow Engines. Workflow libraries are available that encode the process of the workflows.

Pymatgen is a transformation, processing or preparation tool. Custodian is an error correction in realtime tool.

A job can be any process. But it must return some kind of serialisable output object. (such as int, float, bool. list dict).

MSONable types too, the underlying datastructure of pymatgen.

Jobs are defiined using decorators.

JSON is JavaScript Object Notation. Designed to be both human and machine readable.

PyDantic used for validation and serialisation through type annotations.

"TaskDocuments" are Pydantic models with a function that initialises them from a directory or similar.

Model, schema and document are considered interchangable. Workflow and pipeline are considered interchangable.

Job flow is a language to construct work flows. Job flow Remote is to execute them. It is comprised of User, Runner and Worker.

On POWER

To begin this kind of workflow on POWER system, we have our own database server. On this server is the software MongoDB that can be accessed by the command "mongosh" short for Mongo Shell. Unfortunately this can't be installed on the log in node so once you are on POWER you will need to set up passwordless access to our compute node. Currently these are compute-0-422 (132.66.112.243) 

On a windows machine with Jupyter

🧪 Atomate2 + VASP Setup on Windows (Step 1: Local Environment & POSCAR Generation)

This guide walks you through setting up a working Atomate2-compatible environment on Windows, using Anaconda, and generating your first VASP input file (a POSCAR) using pymatgen.

✅ By the end of this step, you'll be able to create crystal structures locally and write them to disk, with no kernel crashes.


✅ Prerequisites

  • Windows 10 or 11
  • Anaconda Distribution
  • Optional: Git Bash or WSL for UNIX-style tools
  • Access to a remote HPC cluster (via VPN and SSH keys)
  • Basic knowledge of Python and Jupyter Notebooks

📦 Step 1: Create a Conda Environment

Open Anaconda Prompt, then create and activate your environment:

conda create -n atomate2_env python=3.10 -y
conda activate atomate2_env

🔧 Step 2: Install Required Packages Install all scientific libraries using the conda-forge channel. This ensures consistent binaries and avoids DLL issues (especially those involving Intel MKL):

conda install -c conda-forge pymatgen numpy scipy spglib mkl

This command will:

Install pymatgen for materials structure manipulation

Install spglib for symmetry analysis

Ensure compatible versions of numpy, scipy, and Intel MKL are included

v🧪 Step 3: Launch Jupyter Notebook Still in your activated environment, launch Jupyter Notebook:

jupyter notebook

Clone this wiki locally