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:
@@ -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));
|
||||
|
||||
Odkázat v novém úkolu
Zablokovat Uživatele