跳到主要内容

ABACUS

This article introduces how to run ABACUS jobs on Bohrium.

Introduction

ABACUS density functional theory software is a domestically developed open-source density functional theory software with completely independent intellectual property rights, led by Professor He Lixin, Researcher Ren Xinguo, and Researcher Chen Mohan. ABACUS can use plane wave basis vectors and numerical atomic orbit basis vectors for simulation calculations, obtain the ground state charge density distribution of materials by solving the Kohn-Sham equation, and calculate various physical properties of the target materials based on this. At present, ABACUS is developing a machine learning-assisted functional model DeePKS, which provides a strong foundation for realizing multi-scale molecular dynamics simulations. In addition, the software development team is also developing density functional theories suitable for various scenarios (such as orbital-free density functional theory suitable for large-scale calculations and random wave function density functional theory suitable for high temperature and high pressure conditions).

Code Repository

Software Documentation

How to run ABACUS jobs on Bohrium

This case takes about 40s to run

Step 1: Prepare input data

First, you need to enable the management node, and the image is selected as ubuntu:20.04-py37 in this case. After connecting to the management node via Web Shell, you can prepare the input files.

The input files of ABACUS (such as input parameters, pseudopotential files, configuration files, etc.) are stored in the Bohrium_ABACUS_example folder. After entering the data disk using the cd /data command, execute the following commands in sequence to download and unzip the input files:

wget https://bohrium-example.oss-cn-zhangjiakou.aliyuncs.com/Bohrium_ABACUS_example.zip
unzip Bohrium_ABACUS_example.zip
cd Bohrium_ABACUS_example

Step 2: Prepare configuration file

The folder already contains the configuration file job.json. In the Files Management page , you can double-click the job.json file in the left file tree to edit and save it online, or you can edit it in the command line window:

vi job.json

Enter i to enter edit mode, press esc to exit edit mode after completing the modification, then enter : to enter the last line command mode, and then enter wq to save and exit. The content of the configuration file is as follows:

Note: Replace the 0000 after "project_id": with your own project ID, which can be viewed on the "Project Management" page. It is recommended to set the number of MPI processes to the number of CPU cores / 2. For example, if the machine type selected in this case is a 16-core 32G memory CPU machine, use mpirun -np 8 to submit the job.

{
"job_name": "ABACUS test",
"command": "OMP_NUM_THREADS=1 mpirun -np 8 abacus > log",
"log_file": "log",
"backward_files": [],
"project_id": 0000,
"platform": "ali",
"job_type": "container",
"machine_type": "c16_m32_cpu",
"image_address": "registry.dp.tech/dptech/abacus:3.0.0"
}

Step 3: Submit the job

Submit the job using Lebesgue Utility:

lbg job submit -i job.json -p ./

Where:

  • -i specifies the configuration file of the job, which is job.json in this case
  • -p specifies the directory where the input files are located, Bohrium will package and upload the specified directory, unzip it on the computing node, and switch the working directory to that directory. In this case, it is ./

If you see the following output in the command line, it means the submission is successful. You can also see the JOB ID of the job, which can be used to track the progress of the job later.

Submit job succeed. JOB GROUP ID: <JOB GROUP ID>, JOB ID: <JOB ID>

View job

You can learn how to view the job status on the Bohrium platform in the Monitor Task Documentation.

Download Results

You can learn how to download the job results on the Bohrium platform in the Result Download Documentation.