Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
216 commits
Select commit Hold shift + click to select a range
e620ab7
added new profiling module task granularity
josephjohnjj Apr 1, 2022
5a393a5
added new profiling module task granularity
josephjohnjj Apr 1, 2022
e47190e
task_characteristics_t structure updated
josephjohnjj Mar 31, 2022
22f1c2e
resolved conflict merge
Apr 5, 2022
566297f
find_data_size() updated to deal with corner cases
josephjohnjj Apr 5, 2022
b5764db
Since new policy, setting the non-cache variable has no effect on the
abouteiller Mar 31, 2022
341a2f3
PRIVATE/PUBLIC_HEADER_H files may be in the build dir or the source dir,
abouteiller Apr 4, 2022
5bf8233
find_data_size() corrected
Apr 6, 2022
948c0fc
find_data_size() updated.
josephjohnjj Apr 12, 2022
ce9621a
find_data_size() simplified
josephjohnjj Apr 12, 2022
0504d41
migration codes
josephjohnjj Apr 18, 2022
2ab59a5
parsec_cuda_kernel_schedule() schedules a migrated task to a particul…
josephjohnjj Apr 18, 2022
862bda2
parsec_cuda_kernel_schedule() renamed as parsec_cuda_kernel_enqueue()…
josephjohnjj Apr 18, 2022
dc70f8d
Migrate protocol: The function parsec_cuda_kernel_dequeue() will forc…
josephjohnjj Apr 22, 2022
89e9482
Increment the gpu task count when a task is added to the qpu queue.
josephjohnjj Apr 22, 2022
7fd3be6
Testcase HelloWorldCuda.jdf added
josephjohnjj Apr 25, 2022
0e98372
PARSEC_HAVE_CUDA_NVML is used to check if the cuda nvml library exists.
josephjohnjj Apr 25, 2022
80149d0
NVML library linked using cmake
josephjohnjj Apr 25, 2022
161bb68
PARSEC_HAVE_CUDA_NVML check changed to PARSEC_HAVE_CUDA.
josephjohnjj Apr 25, 2022
b32f4a7
NVML header file added
josephjohnjj Apr 26, 2022
387c163
testing first stage protocol
josephjohnjj Apr 27, 2022
c50a046
task counting correcetd. parsec_cuda_set_device_load() was used inste…
josephjohnjj Apr 27, 2022
1e9df02
device index corrected. We were using dealer_device->super.device_ind…
josephjohnjj Apr 27, 2022
02acc55
Task counting in each device corrected
josephjohnjj Apr 28, 2022
41ba480
parsec_cuda_migrate_fini() updated
josephjohnjj Apr 28, 2022
2ab276f
test first stage migration
josephjohnjj Apr 28, 2022
bfbe906
Task are made singleton when enqueued and dequeued
josephjohnjj Apr 28, 2022
6cac4a9
first level migration working
josephjohnjj Apr 28, 2022
a12bbca
starvation check added
josephjohnjj Apr 29, 2022
0270b42
task name printed using parsec_task_snprintf()
josephjohnjj Apr 29, 2022
713c36b
code cleanup
josephjohnjj Apr 29, 2022
c262067
task counting cahaged to different levels of execution
josephjohnjj Apr 29, 2022
d499124
half policy reinstated
josephjohnjj Apr 29, 2022
0584df3
total tasks computation per divice added
josephjohnjj May 2, 2022
6229e79
DEVICE_NUM() macro added
josephjohnjj May 2, 2022
8a03db7
task counting corrected
josephjohnjj May 2, 2022
0360825
migration protocol simplified.
josephjohnjj May 4, 2022
a940042
new api call added to scheduler
josephjohnjj May 4, 2022
f989330
GPU task type checkd and some code correction.
josephjohnjj May 4, 2022
bfbeed2
parsec_cuda_mig_task_enqueue() updated to use parsec_list_push_back()
josephjohnjj May 4, 2022
6252089
First level migration added.
josephjohnjj May 8, 2022
d260c10
test_task_permission() renamed as change_task_features()
josephjohnjj May 8, 2022
5b9caf3
change_task_features() moved from migrate_if_starving() to
josephjohnjj May 9, 2022
9905042
accounting information included
josephjohnjj May 11, 2022
e750a3d
Level 2 migration implemented.
josephjohnjj May 19, 2022
2545cec
assert diabled as there are multiple pushed of data
josephjohnjj May 19, 2022
e7d77f3
migrate_status added a member of parsec_gpu_task_s
josephjohnjj May 19, 2022
6730433
migrate_status checked for operations related to task migration.
josephjohnjj May 19, 2022
cb7ec1f
DTD GEMM test disabled due to cblas header file problems
josephjohnjj May 20, 2022
29f4272
3 status added to a GPU task. Conditions changed to reflect this change
josephjohnjj May 20, 2022
f74e3ae
incerement corrected. We were decrementing the reader when we should …
josephjohnjj May 20, 2022
7307854
hash table used to track the memeory of a migrated data.
josephjohnjj May 23, 2022
8ef7a27
data copy increment and decrement replaced by macros
josephjohnjj May 23, 2022
2048d19
all reader manipulations changed to atomic
josephjohnjj May 24, 2022
11c9c2d
for tasks with status TASK_MIGRATED_AFTER_STAGE_IN the source data is
josephjohnjj May 24, 2022
1887275
reader macros updated
josephjohnjj May 24, 2022
020a54d
protocol updated
josephjohnjj May 24, 2022
f904fab
data coherency of staged in data changed from shared to exclusive.
josephjohnjj May 24, 2022
044e164
Readers incremnted for each flow of a staged_in task as the reader
josephjohnjj May 25, 2022
43aab99
gpu_data_compensate_reader() signature changed.
josephjohnjj May 25, 2022
fbe0aed
Reader increment required only for data flow with only write access.
josephjohnjj May 25, 2022
1ae4352
When we are migrating of the data is already in the destination
josephjohnjj May 26, 2022
2301159
gpu_data_version_increment() signature updated
josephjohnjj May 27, 2022
8f79706
Coherence changed to PARSEC_DATA_COHERENCY_SHARED and the data to be
josephjohnjj May 27, 2022
a4f37d6
Task once migrated are not migrated again
josephjohnjj May 27, 2022
81dfdcb
LRU push corrected
josephjohnjj May 27, 2022
32e253f
level1 conditions updated
josephjohnjj May 27, 2022
4e91097
updated documentation and minor code changes
josephjohnjj May 27, 2022
ec4dce7
Increment reader to compensate for parsec_gpu_callback_complete_push()
josephjohnjj May 28, 2022
4e44a0f
Code correction: assert disabled and restored parsec_get_best_device()
josephjohnjj May 28, 2022
e34165e
MPI_Wtime() added
josephjohnjj May 30, 2022
882aaec
timer added. Also changes to parsec_cuda_get_device_task()
josephjohnjj May 31, 2022
c62ad2f
counting corrected to accomodate different levels
josephjohnjj May 31, 2022
8e6e805
task migrated based on the total tasks in each level.
josephjohnjj May 31, 2022
ece493e
task count corrected
josephjohnjj May 31, 2022
dd6d7d4
parsec_atomic_fetch_add_int32() changed to parsec_atomic_cas_int32()
josephjohnjj May 31, 2022
57c64c0
code cleanup
josephjohnjj Jun 1, 2022
81c752b
special case, where migration may push the task count to 0.
josephjohnjj Jun 1, 2022
96fa955
parsec_list_pop_back() changed to parsec_list_try_pop_back in migration.
josephjohnjj Jun 2, 2022
93c9d39
control flow changed
josephjohnjj Jun 2, 2022
b135c80
verbose corrected
josephjohnjj Jun 2, 2022
216e133
changes to parsec_data_copy_detach()
josephjohnjj Jun 6, 2022
3cc25b1
data_retained added to parsec_gpu_task_s to keep track of data operated
josephjohnjj Jun 8, 2022
6468cc2
Debug statements added
josephjohnjj Jun 8, 2022
b7c5fa8
New workflow based on candidate selection implemented.
josephjohnjj Jun 9, 2022
fd3b306
additional debug statements
Jun 10, 2022
ad1cc40
Additional condition added to change_task_features()
josephjohnjj Jun 13, 2022
2f1ff56
Documentation updated
josephjohnjj Jun 13, 2022
683e89e
mca parameter parsec_cuda_migrate_tasks used to enable migration.
josephjohnjj Jun 15, 2022
773836c
Fix few issues with our use of spack.
bosilca Apr 27, 2022
9a39307
flex: on some machines, flex cannot work if parsec/utils is not created
abouteiller Apr 25, 2022
a09019b
Attempt to backport the revamp of the communication engine (#380)
devreal Jun 7, 2022
b15d004
Respect DISTDIR is provided.
bosilca Jun 3, 2022
a870f8d
[RFC] profiling tools: more efficient cross-stream event matching (#372)
omor1 Jun 7, 2022
32d7bac
Fix the event reader.
bosilca Jun 8, 2022
e47b86b
Hash table: count used buckets only when needed
devreal May 7, 2022
3ec50ba
Print the debug rank from device_show_statistics if the rank cannot be
abouteiller Jun 10, 2022
f8d4086
Handle more gracefully cases of error in CUDA module init
therault Mar 16, 2022
e7c6c76
Configurable max_streams, handle more error cases during cuda init
abouteiller Jun 9, 2022
8c0da33
Update to a newer spack compiler
bosilca Jun 17, 2022
2f54e3e
Make the PUSHOUT and other DTD GPU concepts generic so that we can
abouteiller Jun 10, 2022
a85baa5
Fix current CUDA bug...
therault May 13, 2022
6288f88
Typo in local queues utils that would make Inverse Priority Scheduler…
therault Jun 21, 2022
efba073
dtd_test_simple_gemm.c relies on non-standard cblas.h file
therault Feb 24, 2022
04a772c
rebased with new master
josephjohnjj Jun 28, 2022
441ebfb
new dwbug statement added to verify parsec_data_copy_destruct
josephjohnjj Jun 28, 2022
9b5eb8f
new member original_data_in added to keep track of all original data_in.
josephjohnjj Jun 28, 2022
3efff9a
rebased with branch mca
josephjohnjj Jun 28, 2022
a159f43
additional debug statements added
josephjohnjj Jun 29, 2022
f1210f8
RELEASE of gpu_task->original_data_in[f] moved to after __parsec_comp…
josephjohnjj Jun 29, 2022
47be6cd
unneccesary PARSEC_OBJ_RETAIN removed
josephjohnjj Jul 6, 2022
b55edef
documentation and code cleanup
josephjohnjj Jul 6, 2022
9967f22
add task to device mapping for iterative application
josephjohnjj Jul 7, 2022
4261d06
new accounting information added
josephjohnjj Jul 8, 2022
d14b4f1
starvation condition updated. Device is starving is the task count is…
josephjohnjj Jul 8, 2022
afd6172
minor code changes
josephjohnjj Jul 10, 2022
a7b69ef
parsec_gpu_data_stage_in() code trimmed
josephjohnjj Jul 11, 2022
c2e5b72
reader incremented when task is found immediatly from task_data->data_in
josephjohnjj Jul 11, 2022
f4bf594
responsibility of task completion moved from GPU manager thread to th…
josephjohnjj Jul 12, 2022
1f94d5c
profiling details updated
josephjohnjj Jul 12, 2022
f6f7ac9
Profiling code updated.
josephjohnjj Jul 14, 2022
85c8397
parsec_get_best_device() updated
josephjohnjj Jul 14, 2022
575d0b5
migrate workflow changed.
josephjohnjj Jul 15, 2022
0792499
reader increment condition updated
josephjohnjj Jul 15, 2022
0b8e287
extra condition added to make sure that the data_out is not
josephjohnjj Jul 15, 2022
2774661
refined task counting to count only gpu tasks of type PARSEC_GPU_TASK…
josephjohnjj Jul 16, 2022
44ca2d9
documentation updated
josephjohnjj Jul 16, 2022
948c2bb
mem LRU corrected.
josephjohnjj Jul 16, 2022
c8afe5d
if the migrated task is one whose data has already been staged in we …
josephjohnjj Jul 16, 2022
b1a2214
Anti depdendency like behaviour may happen during task migration. Extra
josephjohnjj Jul 16, 2022
9df54a7
parsec_data_copy_detach() updated.
josephjohnjj Jul 16, 2022
81f8249
unnecessary locks removed
josephjohnjj Jul 18, 2022
a16f91f
use a round robin method to find starving device
josephjohnjj Jul 18, 2022
515eda2
debug streams updated
josephjohnjj Jul 18, 2022
b3b47ae
find_starving_device() corrected
josephjohnjj Jul 18, 2022
b059e45
A 'chunk' of tasks migrated to the starving device, instead
josephjohnjj Jul 19, 2022
b3eb162
parse all available device looking for starving devices.
josephjohnjj Jul 19, 2022
b6270a3
migration condition updated and the assert removed. Assert conflicts
josephjohnjj Jul 19, 2022
34673e0
For tasks migrated after stage_ in, during the first stage_in
josephjohnjj Jul 20, 2022
2a8010a
minor code updation
josephjohnjj Jul 21, 2022
6801f58
asserts added
josephjohnjj Jul 21, 2022
ed39230
LRU updated for write only access.
josephjohnjj Jul 21, 2022
e54ccf4
cosmetic changes
josephjohnjj Jul 21, 2022
3eb899a
cosmetic changes
josephjohnjj Jul 22, 2022
be42c19
additional debug statement added
josephjohnjj Jul 22, 2022
279d0ff
If the flow is write only, we free the data immediatly as this data s…
josephjohnjj Jul 22, 2022
f0c2c56
If the data of the task has not been staged in we can revert to
josephjohnjj Jul 22, 2022
10b891a
stage_in of migrated task simplified
josephjohnjj Jul 23, 2022
414c03f
cosmetic changes
josephjohnjj Jul 24, 2022
bc2edc5
cosmetic changes
josephjohnjj Jul 24, 2022
966ecfb
data copy directly used as the candidate, instead of using the
josephjohnjj Jul 25, 2022
90368b5
Coherency status updated based on the LRU the data is pushed.
josephjohnjj Jul 25, 2022
3a8a744
parsec warning disabled
josephjohnjj Jul 25, 2022
102e1b8
ensure that the coherency is changed before we push to a
josephjohnjj Jul 27, 2022
3f46bf5
trace cost of migration
josephjohnjj Jul 25, 2022
96ca55b
tracing updated
josephjohnjj Jul 26, 2022
75e6e72
tracing updated
josephjohnjj Jul 26, 2022
ee66589
tracing updated
josephjohnjj Jul 26, 2022
7e95eaa
tracing updated
josephjohnjj Jul 27, 2022
171b105
GPU task completion moved back to manger code.
josephjohnjj Jul 27, 2022
ca07078
Check for NULL in the gpu_task->original_data_in.
josephjohnjj Jul 28, 2022
294392b
tracing code changed
josephjohnjj Jul 29, 2022
6fde742
Statistics made optional and device->mutex used to find starvation.
josephjohnjj Jul 29, 2022
f7b0c02
Code cleanup
josephjohnjj Jul 29, 2022
1294ccc
parsec/mca/device/device.c updated.
josephjohnjj Aug 5, 2022
746b64b
More statistics added
josephjohnjj Aug 5, 2022
4434bca
more statistics added.
josephjohnjj Aug 13, 2022
751f6f6
If the task is not a compute task, it is pushed back immediatly.
josephjohnjj Aug 23, 2022
75056b9
More statistics added
josephjohnjj Aug 23, 2022
109cad7
get_compute_tasks_executed() added to return the ready compute tasks.
josephjohnjj Aug 23, 2022
e55ee84
starvation conditions updated.
josephjohnjj Aug 23, 2022
ca8b910
affinity count of task migrated calculated
josephjohnjj Aug 24, 2022
cc83b6a
Migrate task only with affinity to the starving device (code commente…
josephjohnjj Aug 24, 2022
4cb8151
more statistics added
josephjohnjj Aug 24, 2022
2b6469b
PINS module task_granularity removed
josephjohnjj Aug 26, 2022
eb9a35b
patch: PR #426
josephjohnjj Aug 26, 2022
968d9d3
tracing extended
josephjohnjj Sep 23, 2022
3ccf917
single pass implemented
josephjohnjj Sep 26, 2022
887908e
documenatation and function name changes.
josephjohnjj Sep 26, 2022
62d357c
single_pass_selection() implemented.
josephjohnjj Sep 27, 2022
4e4e227
implemented different task selection methods.
josephjohnjj Sep 28, 2022
62ce7c6
code updated.
josephjohnjj Sep 29, 2022
8fc3f86
Event duration of each event in the stream recorded
josephjohnjj Oct 2, 2022
38355db
code cleanup
josephjohnjj Oct 2, 2022
cc4260e
tracing updated to count number of H2D and D2D transfer for each task.
josephjohnjj Oct 4, 2022
468767d
trace updated.
josephjohnjj Oct 5, 2022
c7bcff1
Trace updated to collect time stamp in ns
josephjohnjj Oct 11, 2022
d360d02
New selection policy 'affinity-only' added.
josephjohnjj Oct 13, 2022
2d9b6e8
New mca parameter added to decide whether a task completion
josephjohnjj Oct 13, 2022
f314734
Statistics collected on the number of data evictions.
josephjohnjj Oct 25, 2022
a073f2c
selection policy updated to use the queues better.
josephjohnjj Oct 25, 2022
44ffba9
statistics updated to count the number of stage in and the
josephjohnjj Oct 25, 2022
14b72d9
data resuse selection policy implemented
josephjohnjj Oct 27, 2022
3855bf4
stage in calculation corrected
josephjohnjj Oct 27, 2022
492b72d
header file added
josephjohnjj Oct 30, 2022
c91a6b7
Task migration delegated to another thread.
josephjohnjj Oct 30, 2022
8bc4c55
lock mechanism generalised for all selection policies.
josephjohnjj Nov 1, 2022
526c46a
New mca parameter for an unfair task mapping.
josephjohnjj Nov 2, 2022
2b8ff9e
1. Starvation condition updated. Now it is based on the number of st…
josephjohnjj Nov 25, 2022
ba8f0a1
parsec_cuda_migrate_manager() moved to parsec/mca/device/cuda/device_…
josephjohnjj Nov 25, 2022
992d60f
1. Task completion offloaded to the co-manager.
josephjohnjj Nov 28, 2022
b04f102
Code cleanup.
josephjohnjj Nov 28, 2022
bbb929d
parsec_cuda_co_manager corrected
josephjohnjj Dec 5, 2022
4b98c2a
Minor code changes
josephjohnjj Dec 7, 2022
3903a6b
When tasks completion was delegated we were releasing data
josephjohnjj Dec 16, 2022
f4f855c
Statistics updated to count the number of task
josephjohnjj Dec 20, 2022
0a2fcab
More option added for iterative application.
josephjohnjj Dec 20, 2022
abb30fd
1. Check if zone is allocated before it is freed
josephjohnjj Jan 3, 2023
c2ab026
single_try updated
josephjohnjj Jan 4, 2023
c9350f6
1. Memory management during migration of stage-intask refined.
josephjohnjj Jan 8, 2023
d7596e8
Make sure the data_in of the staged-in task is not NULL.
josephjohnjj Jan 8, 2023
21296fc
For stage-in task we set possible candidate for write only data as well.
josephjohnjj Jan 9, 2023
e220c43
1. Conditions simplified in change_task_features()
josephjohnjj Jan 9, 2023
a8a1df8
Signed-off-by: Joseph John <[email protected]>
josephjohnjj Jan 25, 2023
4c7cea7
patch https://github.com/ICLDisco/parsec/pull/479/files implemented
josephjohnjj Jan 29, 2023
889db22
change_task_features() simplified
josephjohnjj Feb 8, 2023
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/CI/github_runner.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
spack:
definitions:
- pkgs:
- gcc@11.2.0
- gcc@12.1.0
- git
- patch
- flex
Expand All @@ -11,7 +11,7 @@ spack:
- py-cython
- cmake
- ninja
- otf2
- otf2@2.3
- openmpi

view: true
Expand Down
22 changes: 14 additions & 8 deletions .github/CI/spack_setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,19 @@ save_dir=`pwd`
#
echo "::group::Spack environment setup"
if [ -r ${SPACK_DIR}/.git/FETCH_HEAD ]; then
# We should never allow spack to update it's packages, it increases the
# opportunity for mishandling of the runner environment. Instead, when
# there is a need for update, the entire runner should be flushed, such
# that a fresh spack install is created.
last_update=`stat -c %Y ${SPACK_DIR}/.git/FETCH_HEAD`
current=`date -d now "+%s"`
if [ $(((current - last_update) / 86400)) -gt 1 ]; then
echo "Last update ${last_update}, current ${current}: Do git pull spack"
cd $SPACK_DIR && git pull
else
echo "git pull was less than one day ago"
fi
echo "spack is $(((current - last_update) / 86400)) days old"
# if [ $(((current - last_update) / 86400)) -gt 1 ]; then
# echo "Last update ${last_update}, current ${current}: Do git pull spack"
# cd $SPACK_DIR && git pull
# else
# echo "git pull was less than one day ago"
# fi
else
echo "git clone spack"
git clone https://github.com/spack/spack $SPACK_DIR || true
Expand All @@ -44,14 +49,15 @@ else
cd $SPACK_DIR && git pull && git status
fi

rm -rf ${HOME}/.spack

echo "Load spack environment"
source $SPACK_DIR/share/spack/setup-env.sh

spack external find
spack compiler find

# Start with a fresh env every time
spack env remove -y ${RUNNER_ENV}
spack env remove -y ${RUNNER_ENV} || true

cd ${save_dir}
mkdir ${RUNNER_ENV} || true
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/build_cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@ jobs:
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
run: |
source ${{github.workspace}}/.github/CI/spack_setup.sh
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE $BUILD_CONFIG CC=gcc CXX=g++
echo CC=gcc CXX=g++ FC=gfortran cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE $BUILD_CONFIG
CC=gcc CXX=g++ FC=gfortran cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE $BUILD_CONFIG

- name: Build
working-directory: ${{ env.BUILD_DIRECTORY }}
Expand Down
6 changes: 3 additions & 3 deletions cmake_modules/FindOTF2.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@ ELSE(NOT OTF2_CONFIG)
${OTF2_LINK_DIRS}
)
IF(_OTF2_LIB_FROM_ARG)
IF(_OTF2_LIBRARY_TEST)
SET(OTF2_LIBRARY ${_OTF2_LIB_FROM_ARG})
ENDIF(_OTF2_LIBRARY_TEST)
IF(_OTF2_LIBRARY_TEST)
SET(OTF2_LIBRARY ${_OTF2_LIB_FROM_ARG})
ENDIF(_OTF2_LIBRARY_TEST)
SET(OTF2_LIBRARIES ${OTF2_LIBRARIES} ${_OTF2_LIB_FROM_ARG})
ENDIF(_OTF2_LIB_FROM_ARG)
UNSET(_OTF2_LIB_FROM_ARG CACHE)
Expand Down
8 changes: 6 additions & 2 deletions cmake_modules/PaRSECConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@ find_package(Threads)

if(@PARSEC_HAVE_HWLOC@)
set_and_check(HWLOC_INCLUDE_DIR "@HWLOC_INCLUDE_DIR@")
set(HWLOC_INCLUDE_DIR ${HWLOC_INCLUDE_DIR} CACHE PATH "Imported by PaRSECConfig.cmake" FORCE)
set_and_check(HWLOC_LIBRARY "@HWLOC_LIBRARY@")
find_package(HWLOC REQUIRED)
set(HWLOC_LIBRARY ${HWLOC_LIBRARY} CACHE PATH "Imported by PaRSECConfig.cmake" FORCE)
find_package(HWLOC REQUIRED MODULE)
endif(@PARSEC_HAVE_HWLOC@)

if(@PARSEC_HAVE_OTF2@)
Expand All @@ -40,8 +42,10 @@ endif(@PARSEC_HAVE_OTF2@)

if(@PARSEC_HAVE_PAPI@)
set_and_check(PAPI_INCLUDE_DIR "@PAPI_INCLUDE_DIR@")
set(PAPI_INCLUDE_DIR ${PAPI_INCLUDE_DIR} CACHE PATH "Imported by PaRSECConfig.cmake" FORCE)
set_and_check(PAPI_LIBRARY "@PAPI_LIBRARY@")
find_package(PAPI REQUIRED)
set(PAPI_LIBRARY ${PAPI_LIBRARY} CACHE PATH "Imported by PaRSECConfig.cmake" FORCE)
find_package(PAPI REQUIRED MODULE)
endif(@PARSEC_HAVE_PAPI@)

if(@PARSEC_DIST_WITH_MPI@)
Expand Down
2 changes: 2 additions & 0 deletions cmake_modules/pregen_flex_bison.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ if(archive)
# Check for problems: stray files in build directory
execute_process(
COMMAND git ls-files --error-unmatch ${srcdir}/${source}
WORKING_DIRECTORY ${srcdir}
RESULT_VARIABLE ret
OUTPUT_VARIABLE stdout
ERROR_VARIABLE stderr
Expand All @@ -61,6 +62,7 @@ if(archive)
# Check for modifications
execute_process(
COMMAND git status --porcelain -- ${srcdir}/${source}
WORKING_DIRECTORY ${srcdir}
RESULT_VARIABLE ret
OUTPUT_VARIABLE stdout
ERROR_VARIABLE stderr
Expand Down
14 changes: 14 additions & 0 deletions parsec/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,12 @@ set(BASE_SOURCES

if(FLEX_FOUND AND BISON_FOUND)
# generate in the build dir
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/utils")
FLEX_TARGET(keyval_flex utils/keyval_lex.l utils/keyval_lex.l.c)
FLEX_TARGET(show_help_flex utils/show_help_lex.l utils/show_help_lex.l.c)

# Generate in the pregen dir, add to the non-automated rule
file(MAKE_DIRECTORY "${PARSEC_PREGEN_FLEX_BISON_DIR}/parsec/utils")
FLEX_TARGET(pregen_keyval_flex utils/keyval_lex.l ${PARSEC_PREGEN_FLEX_BISON_DIR}/parsec/utils/keyval_lex.l.c COMPILE_FLAGS --noline)
FLEX_TARGET(pregen_show_help_flex utils/show_help_lex.l ${PARSEC_PREGEN_FLEX_BISON_DIR}/parsec/utils/show_help_lex.l.c COMPILE_FLAGS --noline)
add_custom_target(parsec_pregen_flex_utils SOURCES ${FLEX_pregen_keyval_flex_OUTPUTS} ${FLEX_pregen_show_help_flex_OUTPUTS})
Expand Down Expand Up @@ -111,6 +113,9 @@ set(SOURCES
mempool.c
private_mempool.c
remote_dep.c
parsec_comm_engine.c
parsec_mpi_funnelled.c
remote_dep_mpi.c
scheduling.c
compound.c
vpmap.c
Expand Down Expand Up @@ -229,6 +234,7 @@ if( BUILD_PARSEC )
$<$<BOOL:${PARSEC_HAVE_OTF2}>:OTF2::OTF2>
$<$<BOOL:${MPI_C_FOUND}>:MPI::MPI_C>
$<$<BOOL:${PARSEC_HAVE_CUDA}>:CUDA::cudart>
$<$<BOOL:${PARSEC_HAVE_CUDA}>:CUDA::nvml>
${EXTRA_LIBS}
INTERFACE
${PARSEC_ATOMIC_SUPPORT_LIBS}
Expand Down Expand Up @@ -266,11 +272,17 @@ if( BUILD_PARSEC )
get_target_property(_public_headers parsec PUBLIC_HEADER_H)
foreach(_FILE ${_public_headers})
get_filename_component(_DIR ${_FILE} DIRECTORY)
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_FILE}")
set(_FILE "${CMAKE_CURRENT_BINARY_DIR}/${_FILE}")
endif()
INSTALL(FILES ${_FILE} DESTINATION ${PARSEC_INSTALL_INCLUDEDIR}/parsec/${_DIR})
endforeach()
get_target_property(_private_headers parsec PRIVATE_HEADER_H)
foreach(_FILE ${_private_headers})
get_filename_component(_DIR ${_FILE} DIRECTORY)
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_FILE}")
set(_FILE "${CMAKE_CURRENT_BINARY_DIR}/${_FILE}")
endif()
INSTALL(FILES ${_FILE} DESTINATION ${PARSEC_INSTALL_INCLUDEDIR}/parsec/${_DIR})
endforeach()

Expand All @@ -287,6 +299,8 @@ if( BUILD_PARSEC )
${CMAKE_CURRENT_SOURCE_DIR}/dictionary.h
${CMAKE_CURRENT_SOURCE_DIR}/data.h
${CMAKE_CURRENT_SOURCE_DIR}/private_mempool.h
${CMAKE_CURRENT_SOURCE_DIR}/bindthread.h
${CMAKE_CURRENT_SOURCE_DIR}/parsec_comm_engine.h
${CMAKE_CURRENT_SOURCE_DIR}/include/parsec/deprecated.h
DESTINATION ${PARSEC_INSTALL_INCLUDEDIR}/parsec)

Expand Down
Loading