Implement default RO context (#64)

* Allocate default context buffers and initialize queue for management

- Allocated the status flag, g return, and atomic return buffers for
  the default context.
- Initialized `AtomicWFQueueProxy` instances to manage these buffers
  efficiently for concurrent access.

* Update `BlockHandle` with default context buffers

* Add default context flag and update buffer retrieval functions

- Added a flag to distinguish the default context from other contexts.
- Modified return buffer functionns and `get_status_flag` function to accommodate
  the default context

* Add default context primitive tests

-  get, put, get_nbi, put_nbi, g, and p APIs.
Tento commit je obsažen v:
Avinash Kethineedi
2025-03-25 18:51:54 -05:00
odevzdal GitHub
rodič 4e48c9748e
revize 867519e1d0
12 změnil soubory, kde provedl 465 přidání a 46 odebrání
+21
Zobrazit soubor
@@ -33,6 +33,7 @@
#include "amo_bitwise_tester.hpp"
#include "amo_extended_tester.hpp"
#include "amo_standard_tester.hpp"
#include "default_ctx_primitive_tester.hpp"
#include "barrier_all_tester.hpp"
#include "empty_tester.hpp"
#include "ping_all_tester.hpp"
@@ -119,6 +120,26 @@ std::vector<Tester*> Tester::create(TesterArguments args) {
if (rank == 0) std::cout << "Non-Blocking Puts ###" << std::endl;
testers.push_back(new PrimitiveTester(args));
return testers;
case DefaultCTXGetTestType:
if (rank == 0)
std::cout << "Default context Blocking Gets ###" << std::endl;
testers.push_back(new DefaultCTXPrimitiveTester(args));
return testers;
case DefaultCTXGetNBITestType:
if (rank == 0)
std::cout << "Default context Non-Blocking Gets ###" << std::endl;
testers.push_back(new DefaultCTXPrimitiveTester(args));
return testers;
case DefaultCTXPutTestType:
if (rank == 0)
std::cout << "Default context Blocking Puts ###" << std::endl;
testers.push_back(new DefaultCTXPrimitiveTester(args));
return testers;
case DefaultCTXPutNBITestType:
if (rank == 0)
std::cout << "Default context Non-Blocking Puts ###" << std::endl;
testers.push_back(new DefaultCTXPrimitiveTester(args));
return testers;
case TeamCtxInfraTestType:
if (rank == 0) std::cout << "Team Ctx Infra test ###" << std::endl;
testers.push_back(new TeamCtxInfraTester(args));