Thallium (Core C++ runtime)
This section will walk you through a series of tutorials on how to use Thallium. We highly recommend to read at least up to the tutorial on providers, which will give you a good picture of how to make a truely object-oriented Mochi service with Thallium.
Thallium also provide a complete object-oriented wrapper for Argobots. One important thing to keep in mind is that these wrappers should be used in place of the C++ threading library.
Important
One of the most frequent source
of bug we encounter is developers mistakenly using std::mutex
or std::thread intead of their Thallium counterparts
thallium::mutex and thallium::thread.
- Initializing Thallium
- Simple Hello World RPC
- Sending arguments, returning values
- Using lambdas and objects to define RPC handlers
- Properly stopping a Thallium server
- Sending and returning STL containers
- Sending and returning custom classes
- Transferring data over RDMA
- Timed RDMA transfers
- Pre-allocated RDMA buffers and pools
- Non-blocking RPCs
- Working in terms of providers
- Finalization callbacks
- Introduction to Argobots wrappers
- List of Argobots wrapper classes
- Using Argobots pools with Thallium RPCs
- Custom schedulers and pools
- Serialization with context
- Logging with Thallium
- Using timed callbacks
- Margo JSON configuration in Thallium
- C++ API Documentation