Section 5: Concepts needed to understand and leverage HPX ===================================================================== =============================== General Programming Concepts =============================== * `Typesafety `_ * `Serialization `_ * `RPC `_ * Operating System Threads and `Userspace Threads `_ (a.k.a. "Green Threads", "Fibers" etc.). Not to be confused with "Tasks" (Small units of work), "Coroutines" (Yield-and-Resumable Subroutines) or "Strands" (Sequentially ordered units of execution). * `Concurrency and Parallelism `_ ================= C++ Concepts ================= * `Declaration `_ versus `Definition `_. See also `here `_ for a newbie friendly explanation of the difference. * C++ Template language basics * `CRTP `_ * Function Local Static Variables combined with Thread Local Storage * Building and using dynamic libraries on your system(s) =============== HPX Concepts =============== * `How does it work? `_ * HPX Actions * HPX Components, "Server" and "Client" Components * HPX Serialization Implementation * HPX Migration, Parcel * HPX Macros * AGAS * Executor * Launch Policy