Skip to content
Draft
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
4 changes: 2 additions & 2 deletions .github/workflows/master-test-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:

- name: Dry-run compilation
shell: bash
run: source /home/hicr/.bashrc && meson setup --wipe build -Dbuildtype=debug -Db_coverage=true -DdistributedEngines=mpi,lpf,none -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true -DexecutionStateType=nosv,boost -DprocessingUnitType=nosv,pthreads -DbuildPyTaskR=true -DbuildInstrumentation=false && meson compile -C build
run: source /home/hicr/.bashrc && meson setup --wipe build -Dbuildtype=debug -Db_coverage=true -DdistributedEngines=mpi,lpf,none -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true -DexecutionStateType=nosv,boost -DprocessingUnitType=nosv,pthreads -DbuildPyTaskR=true -DbuildInstrumentation=true && meson compile -C build

- name: Running tests and creating coverage report
shell: bash
Expand All @@ -51,7 +51,7 @@ jobs:
run: |
echo "Running Tests..."
source /home/hicr/.bashrc
meson setup build -Dbuildtype=debug -Db_coverage=true -DdistributedEngines=mpi,none -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true -DexecutionStateType=nosv,boost -DprocessingUnitType=nosv,pthreads -DbuildPyTaskR=true -DbuildInstrumentation=false
meson setup build -Dbuildtype=debug -Db_coverage=true -DdistributedEngines=mpi,none -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true -DexecutionStateType=nosv,boost -DprocessingUnitType=nosv,pthreads -DbuildPyTaskR=true -DbuildInstrumentation=true
meson compile -C build
meson test -C build
echo "Creating coverage report..."
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/pr-development-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -231,15 +231,15 @@ jobs:
docker run --name taskr --shm-size=1024M --privileged -v $PWD:/home/hicr/taskr -w /home/hicr/taskr -td ${{ env.DOCKERIMAGE }}:${{ inputs.arch }}-latest bash

- name: Dry-run compilation
run: docker exec -u hicr taskr bash -c "meson setup build -Dbuildtype=debug -Db_coverage=true -DdistributedEngines=mpi,lpf,none -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true -DexecutionStateType=nosv,boost -DprocessingUnitType=nosv,pthreads -DbuildPyTaskR=true -DbuildInstrumentation=false && meson compile -C build"
run: docker exec -u hicr taskr bash -c "meson setup build -Dbuildtype=debug -Db_coverage=true -DdistributedEngines=mpi,lpf,none -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true -DexecutionStateType=nosv,boost -DprocessingUnitType=nosv,pthreads -DbuildPyTaskR=true -DbuildInstrumentation=true && meson compile -C build"

- name: Compile
run: docker exec -u hicr taskr bash -c "meson compile -C build"

- name: Running tests and creating coverage report
run: |
echo "Running Tests..."
docker exec -u hicr taskr bash -c "meson setup build -Dbuildtype=debug -Db_coverage=true -DdistributedEngines=mpi,none -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true -DexecutionStateType=nosv,boost -DprocessingUnitType=nosv,pthreads -DbuildPyTaskR=true -DbuildInstrumentation=false && meson compile -C build && meson test -C build"
docker exec -u hicr taskr bash -c "meson setup build -Dbuildtype=debug -Db_coverage=true -DdistributedEngines=mpi,none -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true -DexecutionStateType=nosv,boost -DprocessingUnitType=nosv,pthreads -DbuildPyTaskR=true -DbuildInstrumentation=true && meson compile -C build && meson test -C build"
echo "Creating coverage report..."
docker exec -u hicr taskr bash -c "ninja -C build coverage"
docker stop taskr
Expand Down Expand Up @@ -271,15 +271,15 @@ jobs:
submodules: 'true'

- name: Dry-run compilation
run: source /home/hicr/.bashrc && meson setup build -Dbuildtype=debug -Db_coverage=true -DdistributedEngines=mpi,lpf,none -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true -DexecutionStateType=nosv,boost -DprocessingUnitType=nosv,pthreads -DbuildPyTaskR=true -DbuildInstrumentation=false && meson compile -C build
run: source /home/hicr/.bashrc && meson setup build -Dbuildtype=debug -Db_coverage=true -DdistributedEngines=mpi,lpf,none -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true -DexecutionStateType=nosv,boost -DprocessingUnitType=nosv,pthreads -DbuildPyTaskR=true -DbuildInstrumentation=true && meson compile -C build

- name: Running tests and creating coverage report
shell: bash
env:
LD_PRELOAD: /usr/local/lib/libnosv.so
run: |
source /home/hicr/.bashrc
meson setup build -Dbuildtype=debug -Db_coverage=true -DdistributedEngines=mpi,none -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true -DexecutionStateType=nosv,boost -DprocessingUnitType=nosv,pthreads -DbuildPyTaskR=true -DbuildInstrumentation=false
meson setup build -Dbuildtype=debug -Db_coverage=true -DdistributedEngines=mpi,none -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true -DexecutionStateType=nosv,boost -DprocessingUnitType=nosv,pthreads -DbuildPyTaskR=true -DbuildInstrumentation=true
meson compile -C build
meson test -C build
echo "Creating coverage report..."
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ build
atlas_*.sh
**/matrix/
**/__pycache__/
**/ovni/
**/ovni/
**/tracr/
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,25 @@ ___________ __ __________

TaskR is a lightweight dependency-driven tasking runtime system based entirely on function calls to the [HiCR API](https://github.com/Algebraic-Programming/HiCR)

## Instrumentation (TraCR)

TaskR can trace its runtime behavior (task execution, polling, worker suspension) with [TraCR](https://github.com/Algebraic-Programming/TraCR):

```bash
meson setup build -DbuildInstrumentation=true ...
```

An instrumented run writes a `tracr/` folder into the working directory. Convert it with the `tracr_process` tool (built alongside TaskR) into the format of your choice:

```bash
# Perfetto (open in https://ui.perfetto.dev), Paraver, or a terminal dump
./build/extern/tracr/postprocessing/tracr_process tracr/ perfetto
```

Each worker appears as its own named track with `executing` (annotated with the task id), `polling`, `suspended`, `resumed` and `finished` states.

Note: tracing requires workers pinned to their own OS thread, i.e. the `pthreads` processing unit backend. With other backends (e.g. nOS-V), instrumentation automatically stays off.

## License

Copyright 2025 Huawei Technologies Co., Ltd.
Expand Down
12 changes: 0 additions & 12 deletions examples/matmul/python/matmul.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,13 @@

#include <taskr/taskr.hpp>

#ifdef ENABLE_INSTRUMENTATION
#include <tracr.hpp>
#endif

#define mytype float

/**
* Compute mmm
*/
void matmul(taskr::Task *)
{
#ifdef ENABLE_INSTRUMENTATION
INSTRUMENTATION_VMARKER_SET(MARK_COLOR_RED);
#endif

const size_t N = 200;

// Allocate memory
Expand Down Expand Up @@ -64,10 +56,6 @@ void matmul(taskr::Task *)
free((mytype *)A);
free((mytype *)B);
free((mytype *)C);

#ifdef ENABLE_INSTRUMENTATION
INSTRUMENTATION_VMARKER_RESET();
#endif
}

PYBIND11_MODULE(cpp_matmul, m)
Expand Down
2 changes: 1 addition & 1 deletion extern/HiCR
Submodule HiCR updated from 6eb59e to b855a9
2 changes: 1 addition & 1 deletion extern/tracr
Submodule tracr updated from d37ea2 to ccf28f
Loading
Loading