Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/pr-development-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ jobs:
echo "Creating coverage report..."
ninja -C build coverage
- uses: actions/upload-artifact@v4
if: always()
with:
name: build-standard-${{ inputs.arch }}
path: build/
Expand Down
2 changes: 1 addition & 1 deletion examples/basic/basic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ int main(int argc, char *argv[])
const auto isRoot = instanceManager->getCurrentInstance()->isRootInstance();

// Creating hLLM Engine object
hLLM::Engine hllm(instanceManager.get(), rpcEngine.get(), taskr.get());
hLLM::Engine hllm(instanceManager.get(), workerComputeManager.get(), rpcEngine.get(), taskr.get());

// Deployment object, it dictates how the work will be distributed
hLLM::configuration::Deployment deployment;
Expand Down
2 changes: 1 addition & 1 deletion extern/HiCR
Submodule HiCR updated 51 files
+2 −2 examples/neuralNetwork/groundTruth/source/include/imageLoader.hpp
+0 −1 examples/neuralNetwork/source/include/factory/executionUnit/opencl/executionUnitFactory.cpp
+1 −30 examples/neuralNetwork/source/include/factory/executionUnit/opencl/executionUnitFactory.hpp
+2 −2 examples/neuralNetwork/source/include/imageLoader.hpp
+1 −2 examples/neuralNetwork/source/opencl.cpp
+3 −5 examples/pingPong/include/producer.hpp
+7 −7 examples/tasking/abcTasks/source/abcTasks.hpp
+1 −1 examples/tasking/abcTasks/source/main.cpp
+8 −4 examples/tasking/fibonacci/source/fibonacci.hpp
+1 −1 examples/tasking/fibonacci/source/main.cpp
+1 −1 examples/tasking/resourceList/source/main.cpp
+3 −18 examples/tasking/runtime.hpp
+2 −2 examples/tasking/task.hpp
+0 −0 extern/aclMock/include/acl/acl.h
+0 −0 extern/aclMock/include/acl/acl_base.h
+0 −0 extern/aclMock/include/acl/acl_mdl.h
+0 −0 extern/aclMock/include/acl/acl_op.h
+0 −0 extern/aclMock/include/acl/acl_op_compiler.h
+0 −0 extern/aclMock/include/acl/acl_rt.h
+0 −0 extern/aclMock/include/acl/acl_rt_allocator.h
+0 −0 extern/aclMock/include/acl/error_codes/ge_error_codes.h
+0 −0 extern/aclMock/include/acl/error_codes/rt_error_codes.h
+1 −1 extern/aclMock/meson.build
+7 −3 include/hicr/backends/acl/computeManager.hpp
+2 −2 include/hicr/backends/acl/executionState.hpp
+2 −2 include/hicr/backends/acl/meson.build
+2 −5 include/hicr/backends/boost/computeManager.hpp
+2 −9 include/hicr/backends/boost/coroutine.hpp
+3 −3 include/hicr/backends/boost/executionUnit.hpp
+0 −7 include/hicr/backends/hwloc/computeResource.hpp
+0 −7 include/hicr/backends/hwloc/instanceManager.hpp
+2 −2 include/hicr/backends/hwloc/memoryManager.hpp
+0 −2 include/hicr/backends/lpf/memoryManager.hpp
+0 −5 include/hicr/backends/mpi/instanceManager.hpp
+2 −2 include/hicr/backends/nosv/computeManager.hpp
+7 −2 include/hicr/backends/opencl/computeManager.hpp
+2 −2 include/hicr/backends/opencl/executionState.hpp
+2 −2 include/hicr/backends/pthreads/communicationManager.hpp
+2 −10 include/hicr/backends/pthreads/computeManager.hpp
+1 −1 include/hicr/backends/pthreads/executionState.hpp
+3 −2 include/hicr/backends/pthreads/processingUnit.hpp
+12 −13 include/hicr/core/communicationManager.hpp
+12 −0 include/hicr/core/computeManager.hpp
+2 −2 include/hicr/core/device.hpp
+3 −3 include/hicr/core/exceptions.hpp
+6 −0 include/hicr/core/executionUnit.hpp
+1 −1 include/hicr/core/meson.build
+2 −2 include/hicr/frontends/tasking/callbackMap.hpp
+8 −7 include/hicr/frontends/tasking/worker.hpp
+0 −1 tests/backends/hwloc/instanceManager.cpp
+2 −2 tests/frontends/objectStore/objectStore.cpp
2 changes: 1 addition & 1 deletion extern/TaskR
Submodule TaskR updated 56 files
+1 −0 docs/Doxyfile
+3 −3 examples/abcTasks/cpp/abcTasks.hpp
+3 −3 examples/abcTasks/python/abcTasks.py
+4 −4 examples/cholesky/source/cholesky.hpp
+2 −2 examples/cholesky/source/init.hpp
+3 −1 examples/cholesky/source/nosv.cpp
+5 −2 examples/cholesky/source/pthreads.cpp
+1 −1 examples/cholesky/source/verify.hpp
+2 −2 examples/conditionVariable/cpp/conditionVariableWait.hpp
+2 −2 examples/conditionVariable/cpp/conditionVariableWaitCondition.hpp
+2 −2 examples/conditionVariable/cpp/conditionVariableWaitFor.hpp
+2 −2 examples/conditionVariable/cpp/conditionVariableWaitForCondition.hpp
+2 −2 examples/conditionVariable/python/conditionVariableWait.py
+2 −2 examples/conditionVariable/python/conditionVariableWaitCondition.py
+2 −2 examples/conditionVariable/python/conditionVariableWaitFor.py
+2 −2 examples/conditionVariable/python/conditionVariableWaitForCondition.py
+2 −2 examples/energySaver/cpp/nosv.cpp
+2 −2 examples/energySaver/cpp/pthreads.cpp
+2 −2 examples/energySaver/python/energySaver.py
+3 −3 examples/fibonacci/cpp/fibonacci.hpp
+1 −1 examples/fibonacci/meson.build
+3 −3 examples/fibonacci/python/fibonacci.py
+3 −3 examples/fibonacci/python/fibonacci_mutex.py
+26 −4 examples/jacobi3d/source/grid.cpp
+13 −9 examples/jacobi3d/source/jacobi3d.hpp
+1 −1 examples/jacobi3d/source/nosv.cpp
+1 −1 examples/jacobi3d/source/pthreads.cpp
+1 −1 examples/manyParallel/cpp/manyParallel.hpp
+1 −1 examples/manyParallel/python/manyParallel.py
+1 −1 examples/matmul/meson.build
+2 −2 examples/matmul/python/matmul.py
+3 −3 examples/multiJob/cpp/job1.cpp
+3 −3 examples/multiJob/cpp/job2.cpp
+3 −3 examples/multiJob/python/job1.py
+3 −3 examples/multiJob/python/job2.py
+1 −1 examples/mutex/cpp/mutex.hpp
+1 −1 examples/mutex/meson.build
+1 −1 examples/mutex/python/mutex.py
+1 −1 examples/pendingOperation/cpp/pendingOperation.hpp
+1 −1 examples/pendingOperation/python/pendingOperation.py
+1 −1 examples/resourceList/cpp/nosv.cpp
+3 −3 examples/resourceList/cpp/pthreads.cpp
+1 −1 examples/resourceList/python/main.py
+1 −1 examples/simple/cpp/simple.hpp
+1 −1 examples/simple/python/simple.py
+1 −1 examples/sleepsort/python/main.py
+1 −1 examples/suspend/cpp/suspend.hpp
+1 −1 examples/suspend/python/suspend.py
+1 −1 examples/workerSpecific/cpp/workerSpecific.hpp
+1 −1 examples/workerSpecific/python/workerSpecific.py
+1 −1 extern/HiCR
+5 −1 include/pytaskr/pyruntime.hpp
+4 −1 include/pytaskr/pytaskr.cpp
+4 −4 include/taskr/function.hpp
+48 −36 include/taskr/runtime.hpp
+19 −4 include/taskr/service.hpp
2 changes: 1 addition & 1 deletion extern/cpp-httplib
Submodule cpp-httplib updated 225 files
16 changes: 10 additions & 6 deletions include/hllm/engine.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,27 +26,28 @@ class Engine final
public:

Engine(HiCR::InstanceManager *instanceManager,
HiCR::ComputeManager *computeManager,
HiCR::frontend::RPCEngine *rpcEngine,
taskr::Runtime *taskr,
const HiCR::GlobalMemorySlot::tag_t exchangeTag = __HLLM_DEFAULT_EXCHANGE_TAG)
: _instanceManager(instanceManager),
_computeManager(computeManager),
_rpcEngine(rpcEngine),
_taskr(taskr),
_instanceId(_instanceManager->getCurrentInstance()->getId()),
_exchangeTag(exchangeTag)
{
// Registering entry point function for partition coordinators / replicas. Not for the deployment launcher
_rpcEngine->addRPCTarget(__HLLM_WORKER_ENTRY_POINT_RPC_NAME, HiCR::backend::pthreads::ComputeManager::createExecutionUnit([this](void *) { entryPoint(); }));
_rpcEngine->addRPCTarget(__HLLM_WORKER_ENTRY_POINT_RPC_NAME, _computeManager->createExecutionUnit([this](void *) { entryPoint(); }));

// Registering deployment information request
_rpcEngine->addRPCTarget(__HLLM_REQUEST_DEPLOYMENT_CONFIGURATION_RPC_NAME,
HiCR::backend::pthreads::ComputeManager::createExecutionUnit([this](void *) { attendDeploymentConfigurationRequest(); }));
_rpcEngine->addRPCTarget(__HLLM_REQUEST_DEPLOYMENT_CONFIGURATION_RPC_NAME, _computeManager->createExecutionUnit([this](void *) { attendDeploymentConfigurationRequest(); }));

// Registering finalization function (for root to execute)
_rpcEngine->addRPCTarget(__HLLM_BROADCAST_DEPLOYMENT_STOP_RPC_NAME, HiCR::backend::pthreads::ComputeManager::createExecutionUnit([this](void *) { doLocalTermination(); }));
_rpcEngine->addRPCTarget(__HLLM_BROADCAST_DEPLOYMENT_STOP_RPC_NAME, _computeManager->createExecutionUnit([this](void *) { doLocalTermination(); }));

// Registering finalization request function (for non-root to request roots to end the entire execution)
_rpcEngine->addRPCTarget(__HLLM_REQUEST_DEPLOYMENT_STOP_RPC_NAME, HiCR::backend::pthreads::ComputeManager::createExecutionUnit([this](void *) { broadcastTermination(); }));
_rpcEngine->addRPCTarget(__HLLM_REQUEST_DEPLOYMENT_STOP_RPC_NAME, _computeManager->createExecutionUnit([this](void *) { broadcastTermination(); }));
}

~Engine() = default;
Expand Down Expand Up @@ -313,7 +314,7 @@ class Engine final
for (const auto &replicaRoleIndex : replicaRoleIndexes)
{
printf("[Instance %lu] I am a partition %lu replica %lu\n", _instanceId, replicaRoleIndex.first, replicaRoleIndex.second);
auto replicaRole = std::make_shared<roles::partition::Replica>(_deployment, replicaRoleIndex.first, replicaRoleIndex.second, _taskr, _registeredFunctions);
auto replicaRole = std::make_shared<roles::partition::Replica>(_deployment, replicaRoleIndex.first, replicaRoleIndex.second, _taskr, _computeManager, _registeredFunctions);

// Storing role
_instanceRoles.push_back(replicaRole);
Expand Down Expand Up @@ -459,6 +460,9 @@ class Engine final
// The instance manager to use for creating / relinquishing replicas
HiCR::InstanceManager *const _instanceManager;

// The compute manager to use for creating execution units and registering RPC targets
HiCR::ComputeManager *const _computeManager;

// Pointer to the HiCR RPC Engine
HiCR::frontend::RPCEngine *_rpcEngine;

Expand Down
3 changes: 2 additions & 1 deletion include/hllm/roles/partition/replica.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ class Replica final : public Base
const configuration::Partition::partitionIndex_t partitionIdx,
const configuration::Replica::replicaIndex_t replicaIdx,
taskr::Runtime *const taskr,
HiCR::ComputeManager *const computeManager,
const std::map<std::string, Task::taskFunction_t> &registeredFunctions)
: Base(deployment, partitionIdx, taskr),
_replicaIdx(replicaIdx),
Expand Down Expand Up @@ -62,7 +63,7 @@ class Replica final : public Base
std::make_shared<edge::Output>(*_controlEdgeConfig, edge::edgeType_t::replicaToCoordinator, edge::Base::controlEdgeIndex, _partitionIdx, _partitionIdx, _replicaIdx);

// Creating general TaskR function for all execution graph tasks
_taskrFunction = std::make_unique<taskr::Function>([this](taskr::Task *task) { runTaskRFunction(task); });
_taskrFunction = std::make_unique<taskr::Function>(computeManager, [this](taskr::Task *task) { runTaskRFunction(task); });

// Resetting label count
_taskrLabelCounter = 0;
Expand Down
Loading