The initial version of this module was based on a similar implementation present in FireWorks ( Work done by D. Waroquiers, A. Jain, and M. Kocher.

The main difference wrt the Fireworks implementation is that the QueueAdapter objects provide a programmatic interface for setting important attributes such as the number of MPI nodes, the number of OMP threads and the memory requirements. This programmatic interface is used by the TaskManager for optimizing the parameters of the run before submitting the job (Abinit provides the autoparal option that allows one to get a list of parallel configuration and their expected efficiency).


Return the concrete QueueAdapter class from a string. Note that one can register a customized version with:


MyAdapter should be pickleable, hence one should declare it at the module level so that pickle can import it at run-time.