AiiDA plugin for the HyperQueue metascheduler.

Overview

Build Status Coverage Status Docs status PyPI version

aiida-hyperqueue

WARNING: This plugin is still in heavy development. Expect bugs to pop up and the API to change.

AiiDA plugin for the HyperQueue metascheduler.

Features

Allows task farming on Slurm machines through the submission of AiiDA calculations to the HyperQueue metascheduler.

Installation

TODO

Usage

TODO

Development

TODO

License

MIT

Contact

[email protected]

Comments
  • ✨ NEW: Add support for disabling hyperthreading

    ✨ NEW: Add support for disabling hyperthreading

    Now that HyperQueue supports disabling hyperthreading (see https://github.com/It4innovations/hyperqueue/pull/260), we should add support for starting allocations that use this feature, and update the install instructions once the next release is out.

    new 
    opened by mbercx 1
  • Use both time-limit and time-request

    Use both time-limit and time-request

    This comment justifies why only time-request was used. https://github.com/aiidateam/aiida-hyperqueue/blob/e33376c04b456d4e7f440fff0356f66fbd7c60da/aiida_hyperqueue/scheduler.py#L125-L130

    However, I think both should be used, and set to the same value. It's expected that schedulers kill the job if this takes too long. Actually, this is even more important when sharing a node: I just had a case in which, for some reasons, all jobs in a node remained stuck and stopped producing output, even if they were still using 100% of the CPU. They blocked the worker until the end of its wall time. This means that if e.g. the worker has 24h of wall time, 24h are wasted even if the job should finish within 10 minutes. It's better to kill it and let other jobs go in.

    opened by giovannipizzi 0
  • Updated to HyperQueue v0.11.0

    Updated to HyperQueue v0.11.0

    Added the backlog and workers option to the CLI when requesting allocations, and update the internal syntax to follow the changed commands in HQv.0.11.0

    opened by tsthakur 0
  • Switch to the new JSON output for parsing the output of HQ

    Switch to the new JSON output for parsing the output of HQ

    See e.g. docs here: https://it4innovations.github.io/hyperqueue/latest/cli/output-mode/#json

    and PR with comments here: https://github.com/It4innovations/hyperqueue/pull/270

    I think it should be used at least for hq jobs and hq submit (and possibly hq delete if it is also supported there?)

    opened by giovannipizzi 0
  • Use already defined job resource classes?

    Use already defined job resource classes?

    We should limit the number of different JobResource subclasses used by different scheduler plugins, I think, because these make different schedulers behave differently and so it's harder for the user to know which resources we pass.

    For this scheduler, we clearly need to specify the total number of cores.

    Memory can probably be removed as discussed in #7

    Do we need a different class, and in particular both num_mpiprocs and num_cores? Or can we just reuse e.g. this below (ParEnvJobResource), simply specifying the tot_num_mpiprocs? (and a parallel_env, which is a string - I imagine this would be matched in the future to the name of the alloc on which you want to run - e.g. GPU vs CPU etc.).

    https://github.com/aiidateam/aiida-core/blob/ff1318b485a8b803e115b78946cc4593fc661153/aiida/schedulers/datastructures.py#L177

    opened by giovannipizzi 0
  • Use existing properties to set the max memory, don't add them to the resources

    Use existing properties to set the max memory, don't add them to the resources

    Instead of defining a new memory_Mb in the resources (very specific to this scheduler), we should reuse concepts already into AiiDA and independent of the scheduler.

    E.g. we have metadata.options.max_memory_kb in CalcJobs:

    https://github.com/aiidateam/aiida-core/blob/ff1318b485a8b803e115b78946cc4593fc661153/aiida/engine/processes/calcjobs/calcjob.py#L249

    and this is passed to the scheduler in the JobTemplate:

    https://github.com/aiidateam/aiida-core/blob/ff1318b485a8b803e115b78946cc4593fc661153/aiida/schedulers/datastructures.py#L284

    See e.g. how it's used in SLURM:

    https://github.com/aiidateam/aiida-core/blob/develop/aiida/schedulers/plugins/slurm.py#L383-L396

    opened by giovannipizzi 1
  • Should we use in the CLI the same defaults of `hq`?

    Should we use in the CLI the same defaults of `hq`?

    There are a few points where we change the defaults: number of backlog, and use of hyper threading. I suggest we stick to the same defaults of HQ.

    • HT used by default; have a --no-ht flag instead
    • don't set the backlog by default, and specify it only if the user passes an option

    (and any other change we are actually doing to the defaults). Otherwise a user will get confused when using directly HQ vs using it via AiiDA

    opened by giovannipizzi 0
Owner
AiiDA team
The development team of AiiDA
AiiDA team
An MkDocs plugin that simplifies configuring page titles and their order

MkDocs Awesome Pages Plugin An MkDocs plugin that simplifies configuring page titles and their order The awesome-pages plugin allows you to customize

Lukas Geiter 282 Dec 28, 2022
MkDocs plugin for setting revision date from git per markdown file

mkdocs-git-revision-date-plugin MkDocs plugin that displays the last revision date of the current page of the documentation based on Git. The revision

Terry Zhao 48 Jan 6, 2023
MkDocs Plugin allowing your visitors to *File > Print > Save as PDF* the entire site.

mkdocs-print-site-plugin MkDocs plugin that adds a page to your site combining all pages, allowing your site visitors to File > Print > Save as PDF th

Tim Vink 67 Jan 4, 2023
Ultimaker Cura 2 Mooraker Upload Plugin

Klipper & Cura - Cura2MoonrakerPlugin Allows you to upload Gcode directly from Cura to your Klipper-based 3D printer (Fluidd, Mainsailos etc.) using t

null 214 Jan 3, 2023
Zero configuration Airflow plugin that let you manage your DAG files.

simple-dag-editor SimpleDagEditor is a zero configuration plugin for Apache Airflow. It provides a file managing interface that points to your dag_fol

null 30 Jul 20, 2022
NetBox plugin that stores configuration diffs and checks templates compliance

Config Officer - NetBox plugin NetBox plugin that deals with Cisco device configuration (collects running config from Cisco devices, indicates config

null 77 Dec 21, 2022
NetBox plugin for BGP related objects documentation

Netbox BGP Plugin Netbox plugin for BGP related objects documentation. Compatibility This plugin in compatible with NetBox 2.10 and later. Installatio

Nikolay Yuzefovich 133 Dec 27, 2022
Poetry plugin to export the dependencies to various formats

Poetry export plugin This package is a plugin that allows the export of locked packages to various formats. Note: For now, only the requirements.txt f

Poetry 90 Jan 5, 2023
Crystal Smp plugin for show scoreboards

MCDR-CrystalScoreboards Crystal plugin for show scoreboards | Only 1.12 Usage !!s : Plugin help message !!s hide : Hide scoreboard !!s show : Show Sco

CristhianCd 3 Oct 12, 2021
Netbox Dns is a netbox plugin for managing zone, nameserver and record inventory.

Netbox DNS Netbox Dns is a netbox plugin for managing zone, nameserver and record inventory. Features Manage zones (domains) you have. Manage nameserv

Aurora Research Lab 155 Jan 6, 2023
A Sublime Text plugin to select a default syntax dialect

Default Syntax Chooser This Sublime Text 4 plugin provides the set_default_syntax_dialect command. This command manipulates a syntax file (e.g.: SQL.s

null 3 Jan 14, 2022
Autolookup GUI Plugin for Plover

Word Tray for Plover Word Tray is a GUI plugin that automatically looks up efficient outlines for words that start with the current input, much like a

Kathy 3 Jun 8, 2022
Plover jyutping - Plover plugin for Jyutping input

Plover plugin for Jyutping Installation Navigate to the repo directory: cd plove

Samuel Lo 1 Mar 17, 2022
Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap.

Xadmin Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap. Liv

差沙 4.7k Dec 31, 2022
A simple but flexible plugin system for Python.

PluginBase PluginBase is a module for Python that enables the development of flexible plugin systems in Python. Step 1: from pluginbase import PluginB

Armin Ronacher 1k Dec 16, 2022
A Linux webcam plugin for BGMv2 as used in our demos.

The goal of this repository is to supplement the main Real-Time High Resolution Background Matting repo with a working demo of a videoconferencing plu

Andrey Ryabtsev 144 Dec 27, 2022
A JSON Web Token authentication plugin for the Django REST Framework.

Simple JWT Abstract Simple JWT is a JSON Web Token authentication plugin for the Django REST Framework. For full documentation, visit django-rest-fram

Simple JWT 3.3k Jan 1, 2023
A Django plugin for pytest.

Welcome to pytest-django! pytest-django allows you to test your Django project/applications with the pytest testing tool. Quick start / tutorial Chang

pytest-dev 1.1k Dec 31, 2022
A command-line tool and Python library and Pytest plugin for automated testing of RESTful APIs, with a simple, concise and flexible YAML-based syntax

1.0 Release See here for details about breaking changes with the upcoming 1.0 release: https://github.com/taverntesting/tavern/issues/495 Easier API t

null 909 Dec 15, 2022