Haber Institute Lattice Dynamics Environment
Project description
Installation
External dependencies:
apt-get install gfortran liblapack-dev liblapacke-dev mongodb
Install the python requirements in requirements.txt in order:
cat requirements.txt | xargs -n 1 -L 1 pip install --user
Configure Hilde by creating a ~/.hilderc configuration file in the home directory:
cp hilde/location/hilderc.template ~/.hilderc
and edit according to system. The aims_command is a command or script that takes care
of running aims. This can be either just mpirun aims.x, or a script loading necessary
modules etc. and finally calling srun aims.x on a cluster.
Install Hilde:
pip install --user -U .
Alternatively, you can create and activate a virtual environment holding the Hilde installation and all dependencies like this:
python3 -m venv venv
source venv/bin/activate
cat requirements.txt | xargs -n 1 -L 1 pip install
pip install .
Settings Files
hilde uses the Python configparser module for parsing settings files named
settings.in and the configuration file hilde.cfg. The
parser is augmented by JSON so it understands any input on the right hand side that is
valid JSON. The inputs get converted to Python objects according to this conversion
table.
New Features
- Simplified Settings Files:
- Settings files named
settings.inare automatically parsed when callingSettings()within Hilde. - The configuration file
hilde.cfggets installed to system.
- Settings files named
- Molecular dynamics workflow with input and output files
- see hilde/examples/md
- Phonopy workflow with input and output files
- see hilde/examples/phonopy
- Relaxation workflow with config file and output files
- see hilde/examples/relaxation
- YAML Trajectories:
- save MD trajectories as YAML with tools in
hilde.trajectories - example in
hilde/examples/trajectory/trajectory.son.ipynb
- save MD trajectories as YAML with tools in
- Emails:
- send notifications via email with
hilde.helpers.notifications.send_simple_mail
- send notifications via email with
- Watchdogs:
- supervise e.g. an MD to estimate when the walltime will be reached.
Example in
examples/md/md_with_watchdog.ipynb
- supervise e.g. an MD to estimate when the walltime will be reached.
Example in
- Wrapper for
phono3py- Preprocess and re-creation of Phono3py objects from precomputed force constants, see examples
- Wrapper for
phonopy- Preprocess and (some) postprocess, see examples
- Templates
from hilde.templates.lammps import setup_lammps_sito provide lammps calculator
- Brillouin zone helpers
hilde.helpers.brillouinzonefeaturesget_paths,get_bands, andget_labelsto provide paths in the BZ that can be fed tophonopyviaphonon.set_bandstructure(bands), andphonon.plot_band_structure(labels=labels).- These functions are used by
hilde.phonopy.plot_dos_and_bandstructureto plot DOS and bandstructure in the working directory.
- Scripts:
make_supercell: create supercell from supercell matrix or target targetgeometry_info: print geometry information for given input structure
- Symmetry Block Generation Functions
AtomsInput: A storage class that stores relevant information about a structurewrite_sym_constraints_geo: Read any geometry.in file and use the list ofAtomInputsto create a new supercell with a user defined symmetry block added to it
- FireWorks integration
- Functions that can be used with PyTask to use FireWorks as a job manager
- Jobs can now be submitted to the queue from a local machine and have the results processed locally
Setup of FireWorks on Computational Resources
See also: doc/README_FHI_FireWorksConnections.md
- Overview of Managing FireWorks Remotely
- FireWorks does not copy functions but only finds them in the PYTHONPATH
- To pass it functions give it the function_module.function_name as a str
- Functions that are run on the local machine
- All functions/files that set up FireWorks
- All scripts that initially call hilde.tasks.fireworks.generate_firework
- .cfg Files that define the steps (if used)
- All functions used by a Fireworks without a task that calls a function in task2queue list
- claunch_hilde and associated functions
- All functions/files that set up FireWorks
- Function that are run on the remote machine
- All functions used by a Firework with a task that calls a function in task2queue
- qluanch_hilde and associated functions
- Functions that can run on both machines
- All FireWorks API functions
- All database accessors functions
- Spec modifying functions (hilde.tasks.fireworks.fw_action_outs)
- hilde.tasks.fireworks.generate_firework
- Machine specific settings such as the aims_command is handled dynamically
- It automatically changes when called on a machine
- Can always use local settings without an issue
- Prerequisites for using FireWorks
- Fabric 2 (for remote connections)
- paramiko (used by Fabric 2)
- python-gssapi (for gss authorization)
- pymongo
- Using FireWorks on the clusters
- Download/clone from https://github.com/materialsproject/fireworks.git and move the FireWorks directory
- Modify fw_tutorials/worker/my_fworker.yaml and copy it to $HOME/.fireworks
- Probably do not need to do any modifications if running on similar environments
- Useful if you want to run specific jobs on specific machines without specified reservations
- Modify fw_tutorials/worker/my_launchpad.yaml and copy it to $HOME/.fireworks
- host: Host to the DB server
- If connected through an ssh tunnel use localhost
- port: Port the DB server is listening on
- If connected through an ssh tunnel use the port connected the DB server via the tunnel
- username: username used to access the database
- password: password used to access the database
- logdir: default directory to store logs
- strm_lvl: How much information the launchpad prints by default
- host: Host to the DB server
- Modify the correct fw_tutorials/queue_???.yaml file for your submission system and copy it to $HOME/.fireworks/my_qadapter.yaml
- Only used on clusters
- Set to minimal queue defaults
- nodes = 1
- ntasks_per_node = 32
- walltime = "00:30:00"
- queue = "express"
- logdir = /some/path/that/must/exist (make sure this exists)
- Find the FireWorks install directory with lpad version and modify
$FW_INSTALL_DIR/fireworks/fw_config.py:
- LAUNCHPAD_LOC: $HOME/.fireworks/my_launchpad.yaml
- FWORKER_LOC: $HOME/.fireworks/my_fworker.yaml
- QUEUEADAPTER_LOC: $HOME/.fireworks/my_qadapter.yaml
- Setup a MongoDB database for fireworks
- Best to have it always accessible by all machines that need it
- Check with the cluster management on what solution they'd prefer
- Connections between computers
- Passwordless connections are preferred
- If this is not possible you can pass the password as a command line argument, (delete bash history afterwards)
- FireWorks Etiquette
- Name all Fireworks/WorkFlows
- If you are using a shared launchpad only use lpad reset if everyone is okay with that
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file hilde-0.2.0.tar.gz.
File metadata
- Download URL: hilde-0.2.0.tar.gz
- Upload date:
- Size: 758.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.16 CPython/3.7.2 Linux/4.15.0-51-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e5a4faedead6000d872490ac35d8d5794d5440cbb158b942abfb6b5ac999317
|
|
| MD5 |
132cce8b805131bc539bb7afc8d9a0f3
|
|
| BLAKE2b-256 |
38e5f90a66d69d230379275258a8e723154776ac731e389496f1aa277b77ef9a
|