Skip to content

Nexus Wishlist #5976

Description

@jtkrogel

Nexus bugs/docs/features with high benefit to fix/write/implement. The goal is to maximize the impact of expended developer time.

Bugs

Added by @jtkrogel

  • "queue size" bug. Batch machines often have limits on the queue size (number of jobs that can be submitted to the queue at one time). Nexus users can set a queue size limit to match this behavior. The feature works fine if the Nexus script is run without interruption. However when rerunning post-interruption, Nexus (often/always?) stops submitting new jobs.
  • "bundle" bug. When using the bundle function (a simulation object wrapper around other simulation objects), sometimes the bundle simulation will not complete properly. When this happens (or sometimes without?), large swaths of other simulations in the workflow DAG will cease functioning. Might also interact with interrupts.

Documentation

Added by @jtkrogel

  • Documentation for all user-facing generate_* functions, both in the manual and as docstrings. Also settings, job, and ppset. This is likely the single most beneficial documentation task.
  • Many new user examples illustrating various features, input styles, and code interfaces. Organized in the examples directory, with README's, and described in the manual.
  • Documentation and examples for structure manipulation operations. Docstrings for the useful functions, examples of combined use to manipulate structures (file read/write, tiling, finding the "best" supercell, bounding box for molecules, molecular composition, distance/vector/neighbor tables, adding/removing layers, element labeling, creation and use of mask arrays for atomic selection and modification, etc).
  • How to add a new machine
  • How to add a new simulation code
  • Examples for simulation input read/manipulate/write
  • Examples for pseudopotential read/manipulate/write, including file format conversions
  • Examples for gaussian basisset read/manipulate/write, including file format conversions
  • Documentation and examples for other file I/O classes
  • Docstrings for other major functions, classes, and member functions. Classes: Settings, Job, Supercomputer (derived), Simulation (derived), ProjectManager

New Features

Added by @jtkrogel

  • Dynamic workflows. Removes the DAG workflow constraint. Use native python code to create arbitrary workflows. Enables construction of true QMC algorithms built upon individual calculations (converge to target errorbar, pick the best Jastrow among independent runs, timesteps extrap, finite size extrap, SHDMC, etc). Also enables construction of recovery upon failure workflows.
  • New codes, e.g. ORCA
  • Slurm machine class. Enables job management on arbitrary Slurm machines. Obviates the need for many users to add custom classes for each machine they have access to.
  • Slurm job class. Similarly provides generic support for all flags/keys/etc relating to Slurm jobs.

Added by @brockdyer03

  • Update pseudopotential.py user interface to be more object-oriented.

Other Developer Tasks

Added by @jtkrogel

  • Bring supported QE input parameters up to date
  • Bring supported VASP input parameters up to date
  • Hunt for (will require digging!) and add other QMCPACK input parameters
  • Hardening status checks for completed runs. Carefully delineate between failure and success based on thorough checks. Also needed to enable dynamic workflows, which demand higher accuracy on this task (supports essential logic based on run failure/success).
  • Improvements to analyzer classes. Capture wider array of simulation outputs/products. Reduce nesting to simplify user access to these quantities.

Added by @brockdyer03

Automation Support (High value: reduces precious human time)

Added by @jtkrogel

  • Automatic pseudopotential download and use (e.g. ccECP, SSSP)
  • Automatic k-point grid selection
  • Automatic selection of supercell sequences
  • Automatic pw energy cutoff selection
  • Automatic meshfactor and hybrid rep setup
  • Automatic job design (essential for HPC machines). Node count, walker samples, walltime. Obeying machine-specific node/walltime limits. Compute resource constraints ("don't burn more than X node hours").
  • Models to estimate input samples required to produce target energy errorbar
  • Models to estimate runtime, etc, perhaps accomplished by exploratory short/small run for calibration. Supports automation of job design.
  • Automatic detection of anomalous events (e.g. population explosions, other energy instabilities)
  • Automatic recovery upon failure (e.g. for failed scf convergence, wavefunction optimization, dmc pop explosions, etc)
  • Algorithms: timestep extrapolation, finite size extrapolation, equation of state, high quality density estimation, U/exact exchange scans, etc. See dynamic workflows above.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions