Introduction to Argobots wrappers
For convenience, Thallium provides C++ wrappers to all the Argobots functions and structures. We strongly encourage users to familiarize themselves with Argobots to understand how to use execution streams, threads, tasks, pools, etc.
The following code initializes Argobots through Thallium.
#include <thallium.hpp>
namespace tl = thallium;
int main(int argc, char** argv) {
// the constructor of the tl::abt object initializes Argobots
tl::abt a;
// its destructor finalizes it
return 0;
}
Note
If you are creating a thallium::engine
, this engine
already initializes Argobots in its constructor and finalizes it in its destructor.
The code above should therefore be used either if Thallium is used only for
its Argobots wrappers (no RPC definition), or if there is a need to initialize
Argobots before initializing the engine (for example when creating custom
Argobots scheduler and pools that the engine will then use).