Compare commits
5 Commits
df0cfc5b35
...
3a300c816e
Author | SHA1 | Date | |
---|---|---|---|
3a300c816e | |||
8c8bde4a0f | |||
0c64f62d01 | |||
d5d5f2fcd4 | |||
51269a478b |
45
.gitea/workflows/ci.yaml
Normal file
45
.gitea/workflows/ci.yaml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
name: CI
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:local:
|
||||||
|
runs-on: native
|
||||||
|
steps:
|
||||||
|
- uses: https://gitea.com/ScMi1/checkout@v1.4
|
||||||
|
- run: nix build -L --no-link .#ovniPackages.local
|
||||||
|
|
||||||
|
build:rt:
|
||||||
|
runs-on: native
|
||||||
|
steps:
|
||||||
|
- uses: https://gitea.com/ScMi1/checkout@v1.4
|
||||||
|
- run: nix build -L --no-link .#ovniPackages.rt
|
||||||
|
|
||||||
|
build:debug:
|
||||||
|
runs-on: native
|
||||||
|
steps:
|
||||||
|
- uses: https://gitea.com/ScMi1/checkout@v1.4
|
||||||
|
- run: nix build -L --no-link .#ovniPackages.debug
|
||||||
|
|
||||||
|
build:asan:
|
||||||
|
runs-on: native
|
||||||
|
steps:
|
||||||
|
- uses: https://gitea.com/ScMi1/checkout@v1.4
|
||||||
|
- run: nix build -L --no-link .#ovniPackages.asan
|
||||||
|
|
||||||
|
build:nompi:
|
||||||
|
runs-on: native
|
||||||
|
steps:
|
||||||
|
- uses: https://gitea.com/ScMi1/checkout@v1.4
|
||||||
|
- run: nix build -L --no-link .#ovniPackages.nompi
|
||||||
|
|
||||||
|
build:compilers:
|
||||||
|
runs-on: native
|
||||||
|
steps:
|
||||||
|
- uses: https://gitea.com/ScMi1/checkout@v1.4
|
||||||
|
- run: nix build -L --no-link .#ovniPackages.compilers
|
36
CHANGELOG.md
36
CHANGELOG.md
@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fix breakdown model error that was preventing a zero value to be written in
|
||||||
|
the PRV trace.
|
||||||
|
|
||||||
|
## [1.9.0] - 2024-04-25
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Consistency check for events emitted when the kernel has removed the thread
|
- Consistency check for events emitted when the kernel has removed the thread
|
||||||
@ -235,17 +242,18 @@ are used along with some other changes.
|
|||||||
|
|
||||||
- First ovni release.
|
- First ovni release.
|
||||||
|
|
||||||
[unreleased]: https://pm.bsc.es/gitlab/rarias/ovni/-/commits/master
|
[unreleased]: https://jungle.bsc.es/git/rarias/ovni
|
||||||
[1.8.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.8.0
|
[1.9.0]: https://github.com/rodarima/ovni/releases/tag/1.9.0
|
||||||
[1.7.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.7.0
|
[1.8.0]: https://github.com/rodarima/ovni/releases/tag/1.8.0
|
||||||
[1.6.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.6.0
|
[1.7.0]: https://github.com/rodarima/ovni/releases/tag/1.7.0
|
||||||
[1.5.1]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.5.1
|
[1.6.0]: https://github.com/rodarima/ovni/releases/tag/1.6.0
|
||||||
[1.5.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.5.0
|
[1.5.1]: https://github.com/rodarima/ovni/releases/tag/1.5.1
|
||||||
[1.4.1]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.4.1
|
[1.5.0]: https://github.com/rodarima/ovni/releases/tag/1.5.0
|
||||||
[1.4.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.4.0
|
[1.4.1]: https://github.com/rodarima/ovni/releases/tag/1.4.1
|
||||||
[1.3.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.3.0
|
[1.4.0]: https://github.com/rodarima/ovni/releases/tag/1.4.0
|
||||||
[1.2.2]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.2.2
|
[1.3.0]: https://github.com/rodarima/ovni/releases/tag/1.3.0
|
||||||
[1.2.1]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.2.1
|
[1.2.2]: https://github.com/rodarima/ovni/releases/tag/1.2.2
|
||||||
[1.2.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.2.0
|
[1.2.1]: https://github.com/rodarima/ovni/releases/tag/1.2.1
|
||||||
[1.1.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.1.0
|
[1.2.0]: https://github.com/rodarima/ovni/releases/tag/1.2.0
|
||||||
[1.0.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.0.0
|
[1.1.0]: https://github.com/rodarima/ovni/releases/tag/1.1.0
|
||||||
|
[1.0.0]: https://github.com/rodarima/ovni/releases/tag/1.0.0
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
cmake_minimum_required(VERSION 3.20)
|
cmake_minimum_required(VERSION 3.20)
|
||||||
|
|
||||||
project(OVNI LANGUAGES C VERSION 1.8.0)
|
project(OVNI LANGUAGES C VERSION 1.9.0)
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (c) 2023 Barcelona Supercomputing Center (BSC)
|
/* Copyright (c) 2023-2024 Barcelona Supercomputing Center (BSC)
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later */
|
* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||||
|
|
||||||
#include "breakdown.h"
|
#include "breakdown.h"
|
||||||
@ -239,6 +239,11 @@ model_nanos6_breakdown_connect(struct emu *emu)
|
|||||||
long type = PRV_NANOS6_BREAKDOWN;
|
long type = PRV_NANOS6_BREAKDOWN;
|
||||||
long flags = PRV_SKIPDUP;
|
long flags = PRV_SKIPDUP;
|
||||||
|
|
||||||
|
/* We may emit zero at the start, when an input changes and all
|
||||||
|
* the other sort output channels write a zero in the output,
|
||||||
|
* before the last value is set in prv.c. */
|
||||||
|
flags |= PRV_ZERO;
|
||||||
|
|
||||||
struct chan *out = sort_get_output(&bemu->sort, i);
|
struct chan *out = sort_get_output(&bemu->sort, i);
|
||||||
if (prv_register(prv, i, type, bay, out, flags)) {
|
if (prv_register(prv, i, type, bay, out, flags)) {
|
||||||
err("prv_register failed");
|
err("prv_register failed");
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (c) 2021-2023 Barcelona Supercomputing Center (BSC)
|
/* Copyright (c) 2021-2024 Barcelona Supercomputing Center (BSC)
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later */
|
* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||||
|
|
||||||
#ifndef INSTR_H
|
#ifndef INSTR_H
|
||||||
@ -62,6 +62,7 @@ int64_t get_delta(void);
|
|||||||
}
|
}
|
||||||
|
|
||||||
INSTR_3ARG(instr_thread_execute, "OHx", int32_t, cpu, int32_t, creator_tid, uint64_t, tag)
|
INSTR_3ARG(instr_thread_execute, "OHx", int32_t, cpu, int32_t, creator_tid, uint64_t, tag)
|
||||||
|
INSTR_1ARG(instr_thread_affinity_set, "OAs", int32_t, cpu)
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
instr_thread_end(void)
|
instr_thread_end(void)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2022-2023 Barcelona Supercomputing Center (BSC)
|
# Copyright (c) 2022-2024 Barcelona Supercomputing Center (BSC)
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
test_emu(nested-tasks.c)
|
test_emu(nested-tasks.c)
|
||||||
@ -14,5 +14,6 @@ test_emu(switch-same-type.c)
|
|||||||
test_emu(sponge.c)
|
test_emu(sponge.c)
|
||||||
test_emu(sponge-breakdown.c BREAKDOWN)
|
test_emu(sponge-breakdown.c BREAKDOWN)
|
||||||
test_emu(breakdown-no-black.c BREAKDOWN)
|
test_emu(breakdown-no-black.c BREAKDOWN)
|
||||||
|
test_emu(breakdown-write-zero.c MP BREAKDOWN)
|
||||||
test_emu(rerun-task-bad.c SHOULD_FAIL
|
test_emu(rerun-task-bad.c SHOULD_FAIL
|
||||||
REGEX "body_execute: body(id=1,taskid=1) is not allowed to run again")
|
REGEX "body_execute: body(id=1,taskid=1) is not allowed to run again")
|
||||||
|
35
test/emu/nanos6/breakdown-write-zero.c
Normal file
35
test/emu/nanos6/breakdown-write-zero.c
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
/* Copyright (c) 2024 Barcelona Supercomputing Center (BSC)
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include "compat.h"
|
||||||
|
#include "instr.h"
|
||||||
|
#include "instr_nanos6.h"
|
||||||
|
|
||||||
|
/* Cause the sort module to write zeros in some rows when the breakdown model is
|
||||||
|
* enabled, which shouldn't cause a panic. */
|
||||||
|
int
|
||||||
|
main(void)
|
||||||
|
{
|
||||||
|
int rank = atoi(getenv("OVNI_RANK"));
|
||||||
|
int nranks = atoi(getenv("OVNI_NRANKS"));
|
||||||
|
|
||||||
|
if (nranks < 2)
|
||||||
|
die("need at least two ranks");
|
||||||
|
|
||||||
|
instr_start(rank, nranks);
|
||||||
|
instr_nanos6_init();
|
||||||
|
|
||||||
|
/* Change the subsystem in a single thread, while the rest remain NULL.
|
||||||
|
* This shouldn't cause a panic, as writting zero is ok for the other
|
||||||
|
* sort outputs. */
|
||||||
|
if (rank == 0) {
|
||||||
|
instr_nanos6_worker_loop_enter();
|
||||||
|
instr_nanos6_worker_loop_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
instr_end();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2022-2023 Barcelona Supercomputing Center (BSC)
|
# Copyright (c) 2022-2024 Barcelona Supercomputing Center (BSC)
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
find_package(Nanos6)
|
find_package(Nanos6)
|
||||||
@ -57,3 +57,8 @@ nanos6_rt_test(spawn-task-external-bad.c SHOULD_FAIL
|
|||||||
nanos6_rt_test(simple-task.c NAME simple-task-level-1 LEVEL 1)
|
nanos6_rt_test(simple-task.c NAME simple-task-level-1 LEVEL 1)
|
||||||
nanos6_rt_test(simple-task.c NAME simple-task-level-2 LEVEL 2)
|
nanos6_rt_test(simple-task.c NAME simple-task-level-2 LEVEL 2)
|
||||||
nanos6_rt_test(simple-task.c NAME simple-task-level-3 LEVEL 3)
|
nanos6_rt_test(simple-task.c NAME simple-task-level-3 LEVEL 3)
|
||||||
|
|
||||||
|
# Same but with breakdown enabled
|
||||||
|
nanos6_rt_test(simple-task.c NAME simple-task-breakdown-level-1 LEVEL 1 BREAKDOWN)
|
||||||
|
nanos6_rt_test(simple-task.c NAME simple-task-breakdown-level-2 LEVEL 2 BREAKDOWN)
|
||||||
|
nanos6_rt_test(simple-task.c NAME simple-task-breakdown-level-3 LEVEL 3 BREAKDOWN)
|
||||||
|
Loading…
Reference in New Issue
Block a user