Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
158 commits
Select commit Hold shift + click to select a range
be9140f
multidimensional grid + framework for data arrays
cflinto Oct 5, 2022
8edc8fe
multidimensional grid + framework for data arrays
cflinto Oct 5, 2022
e4efad0
Merge branch 'master' of github.com:cflinto/parsec
cflinto Oct 5, 2022
6f4cf43
forgotten files
cflinto Oct 5, 2022
9de108d
glitchy parametrized flow semantic
cflinto Oct 6, 2022
0041cd8
bug fix
cflinto Oct 6, 2022
dd01e39
base syntax parametrized flows
cflinto Oct 6, 2022
89b617c
remove comment
cflinto Oct 7, 2022
e8f1404
add flow-local variables to the flow structure
cflinto Oct 10, 2022
d082f82
checkpoint
cflinto Oct 11, 2022
6114772
proper iterator for initialization
cflinto Oct 11, 2022
2b09634
generate parametrized for loop in a dump function
cflinto Oct 11, 2022
ebf1831
correct initialization and cache_buf_referenced
cflinto Oct 11, 2022
80edc32
parsec_data_transfer_ownership_to_copy
cflinto Oct 11, 2022
4940c6b
partly fills the flow structure
cflinto Oct 12, 2022
472b6a1
allocate the parametrized data in jdf_generate_startup_tasks
cflinto Oct 12, 2022
95d3417
macro FLOW_IS_PARAMETRIZED
cflinto Oct 12, 2022
f391841
add helper functions to manipulate parametrized flow code
cflinto Oct 12, 2022
f52ca35
use util functions for the _startup_ function generation
cflinto Oct 12, 2022
9939b8b
use util functions in jdf_generate_code_cache_awareness_update
cflinto Oct 12, 2022
d9efdd8
use util functions for the generation of parsec_data_transfer_ownersh…
cflinto Oct 12, 2022
5dcd14e
incorrect patch for release_deps_of_..., releases all deps of a param…
cflinto Oct 12, 2022
0cc8f92
add various offset to flows when parametrized
cflinto Oct 13, 2022
9fdd33e
add parametrized reference to data (still some left to do)
cflinto Oct 14, 2022
ea064cc
add the remaining _f_FLOW modification for parametrized flows to work…
cflinto Oct 14, 2022
badc976
correct the last needed parametrized data references (NOT TESTED)
cflinto Oct 14, 2022
6160d5e
probably dont need this loop
cflinto Oct 14, 2022
86dba4a
init the parametrized data flow at the right place
cflinto Oct 14, 2022
02fb7cf
add a comment before the loop for parametrized flows
cflinto Oct 14, 2022
43e95ea
discard variable if flow level (jdf_dump_context_assignment)
cflinto Oct 14, 2022
3b53007
add TODOs
cflinto Oct 16, 2022
9e8c5f9
move allocation of the flow data array to the right place + changed t…
cflinto Oct 17, 2022
7b5cb33
make it actually compile
cflinto Oct 17, 2022
24afda5
add flag to enable parametrized flows
cflinto Oct 18, 2022
675eb78
clean
cflinto Oct 18, 2022
87ce65e
add #cmakedefine in parsec_options.h.in
cflinto Oct 18, 2022
e51a040
change some behaviors when PARSEC_ALLOW_PARAMETRIZED_FLOWS is defined
cflinto Oct 18, 2022
2fc931a
add base to debug print a task class
cflinto Oct 19, 2022
bfbb78f
add forgotten files
cflinto Oct 19, 2022
27be8cf
implement parsec_debug_dump_task_class_at_exec
cflinto Oct 19, 2022
0b1d70e
change the formatting
cflinto Oct 19, 2022
deaf991
improve the formatting
cflinto Oct 19, 2022
a36a098
remove comment
cflinto Oct 19, 2022
d33d02f
better handle the format of parsec_debug_dump_task_class_at_exec when…
cflinto Oct 19, 2022
44eeb9b
improve the logic in parsec_debug_dump_task_class_at_exec
cflinto Oct 20, 2022
77bc64e
separate the assert from the dump
cflinto Oct 20, 2022
db3fd8c
make parsec_helper_flow_is_in_flow_array public, add a new check for …
cflinto Oct 21, 2022
4150f70
add parsec_helper_copy_flow utility
cflinto Oct 21, 2022
781113d
add various helper functions
cflinto Oct 24, 2022
38c279d
improve the formatting of parsec_debug_dump_task_class_at_exec
cflinto Oct 24, 2022
f57ccdb
correct spaces
cflinto Oct 24, 2022
a49ff8d
add assert to ensure that iterate_predecessors is not called if the f…
cflinto Oct 26, 2022
3d33869
change syntax + correct bug in jdf_assign_ldef_index
cflinto Oct 27, 2022
4fd2b23
merge array_offset and dataflow variables
cflinto Oct 27, 2022
75533bc
add a special range for parametrized flow ranges expr
cflinto Oct 27, 2022
65e5d6e
add sanity checks and task class dumps in jdf_generate_constructor
cflinto Oct 27, 2022
0c21316
add the parametrized flow declaration
cflinto Oct 28, 2022
8dc61df
duplicate parametrized flows in the structure
cflinto Oct 28, 2022
c007ded
replace MAX_PARAM_COUNT with MAX_DATAFLOWS_PER_TASK and add some code…
cflinto Oct 28, 2022
7b4b933
beginning of the handling of dep duplication
cflinto Oct 28, 2022
3ac3a4c
add declaration of referrer deps
cflinto Oct 28, 2022
a009021
generate presentable code for parametrized flows and their referrers
cflinto Oct 29, 2022
2493d80
modify expr_of_cond_for_flow_* if call refers to a parametrized flow
cflinto Oct 30, 2022
9943128
attempt to dump parametrized iterators for referrers
cflinto Nov 1, 2022
19c3cb3
remove every attempt to do custom conds
cflinto Nov 1, 2022
38829a5
skeleton to get flow indices for parametrized flows
cflinto Nov 1, 2022
ce714c1
completed the structure for parametrized flow offsets
cflinto Nov 1, 2022
9a55053
move declarations of parametrized stuff inside parsec_X_new
cflinto Nov 2, 2022
768a508
set number of specializations + ensure that at least one flow is para…
cflinto Nov 2, 2022
d4b6e53
set parametrized flow offsets at runtime
cflinto Nov 2, 2022
5893e7c
first version of a proper parametrized call in iterate_successors
cflinto Nov 2, 2022
03f5413
correct generated code
cflinto Nov 3, 2022
429ce6c
correct the parsec_fatal for when iterate_predecessors is called with…
cflinto Nov 3, 2022
d27bd57
shift the goal + move the parametrized data malloc
cflinto Nov 4, 2022
3a8ce27
add comment
cflinto Nov 4, 2022
bae83f7
change predeclarations for parametrized tasks
cflinto Nov 4, 2022
1e56652
rename the generated names in spec_X
cflinto Nov 4, 2022
b2b1b4c
use dump_flow_offset_for_iterate_successors and dump_dep_offset_for_i…
cflinto Nov 4, 2022
643b409
remove annoying printfs and comments
cflinto Nov 4, 2022
3f6ec3d
add class declaration
cflinto Nov 4, 2022
389a019
used generic name for task classes
cflinto Nov 7, 2022
eac2ee4
rename unused to dynamic if parametrized
cflinto Nov 7, 2022
51e611d
macro to access parametrized offset
cflinto Nov 7, 2022
f5bc7d0
change the data access if the flow is parametrized
cflinto Nov 7, 2022
568adae
correct error
cflinto Nov 7, 2022
689ad6f
move the iterator of iterate_successors_of_PARAMETRIZED_FLOW to a hig…
cflinto Nov 7, 2022
21015fd
create the constructores for the tasks
cflinto Nov 7, 2022
ff9b807
definition of simple constructor, need work to merge with the modific…
cflinto Nov 7, 2022
251ea37
add custom name to parametrized flows
cflinto Nov 8, 2022
5fd4f7f
correct dynamic data offet
cflinto Nov 8, 2022
67233da
properly declare the gpu tasks (the target flow is NOT working yet)
cflinto Nov 8, 2022
3f90d92
set in_flow_offset_of_ + renamings
cflinto Nov 8, 2022
833cdf9
add all the necessary spec_X for parametrized flows
cflinto Nov 8, 2022
1cb8634
add a check to ensure the dependencies in the jdf are correct
cflinto Nov 9, 2022
aab671f
move the jdf checks in jdf_generate_code_data_lookup + remove various…
cflinto Nov 9, 2022
5376766
proper parsec_fatal if the dependency of a parametrized flow is incoh…
cflinto Nov 9, 2022
c3dd75e
cleanup
cflinto Nov 9, 2022
e35f750
dont even declare irrelevant specs, finish iterate_predecessors immed…
cflinto Nov 11, 2022
1709826
lower MAX_DEP_IN_COUNT and MAX_DEP_OUT_COUNT to 20 (else crashes), ch…
cflinto Nov 16, 2022
151b475
partial implementation of parametrized referrers inside parametrized …
cflinto Nov 17, 2022
3eeb876
unroll referrers before parametrized flows, bug not solved
cflinto Nov 17, 2022
c6549c7
make the parametrized link sanity check work better with broadcasts +…
cflinto Nov 18, 2022
2632a08
improve the print
cflinto Nov 18, 2022
256f1aa
first unroll flows, then deps, make it work for referrers of parametr…
cflinto Nov 19, 2022
ad3acca
do not change the name of parametrized flows
cflinto Nov 21, 2022
1cdcc0c
increase debug verbose level for printing the iterator value
cflinto Nov 21, 2022
c2c4a34
fix the debug messages
cflinto Nov 21, 2022
09d0982
find the depid instead of taking a static (usually false) id
cflinto Nov 23, 2022
c8447ea
add flow iterator in iterate_successors
cflinto Nov 23, 2022
13b43a6
use a pseudo loop for unrolling the parametrized flows + first failed…
cflinto Nov 28, 2022
611bed5
the dep_id are properly set but not the masks
cflinto Nov 30, 2022
e1f1144
create field to store action masks
cflinto Nov 30, 2022
4d7dada
set the action masks
cflinto Nov 30, 2022
815c696
maybe its useless to store a mask for output deps
cflinto Nov 30, 2022
96183f4
use proper dataflow masks
cflinto Nov 30, 2022
aadbe60
fix bug, not flow_index is correct
cflinto Nov 30, 2022
c768d80
flows can no more be shifted twice
cflinto Nov 30, 2022
7798092
correct the part to set a unique dep_id per task class
cflinto Feb 6, 2023
0adf2a1
correct the fixing of the dep_index
cflinto Feb 6, 2023
a8f3787
solve the problem where an ABC flow placed before a parametrized flow…
cflinto Feb 6, 2023
0ac6b67
correct parametrized flow masks
cflinto Feb 6, 2023
440bacf
use a dynamic task_class-level dynamic action_mask
cflinto Feb 7, 2023
9ea0e21
rework action_masks, there is something wrong
cflinto Feb 8, 2023
68600e9
keep the dep_datatype_index up-to-date as well
cflinto Feb 9, 2023
c85219e
start using a variable to get the flow_id
cflinto Feb 10, 2023
e5f46be
add the variables for dynamic flow ids + declare the parametrized ite…
cflinto Feb 10, 2023
097d50f
output the value of the iterator
cflinto Feb 10, 2023
be5c9e7
use dynamic flow id only of the task class has a parametrized flow
cflinto Feb 13, 2023
cb5408a
use a mask for each specialization of a parametrized flow + put the p…
cflinto Feb 13, 2023
e62bcee
rework the make_key function to include the parametrized iterator
cflinto Feb 13, 2023
1227a36
revert make_key to the original version
cflinto Feb 14, 2023
e0dbfa5
complete the previous revert
cflinto Feb 14, 2023
c783593
use parametrized flow id if needed in reshaping
cflinto Feb 16, 2023
137757c
use variable for flow_index in the reshaping from deps
cflinto Feb 16, 2023
dbdc338
correct flow id for affecting repo_entry->data to NULL
cflinto Feb 16, 2023
dbad205
correct the number of flows if parametrized
cflinto Feb 16, 2023
1193e14
use data_dynamic_offset_of_parametrized_ instead of flow_id + only de…
cflinto Feb 17, 2023
81fe29f
add asserts + function to find a flow_id + switch back to using spec_…
cflinto Feb 17, 2023
26b807a
change the flow_index affectation so that it works for READ/WRITE-onl…
cflinto Feb 20, 2023
47bc442
update dependencies_goal later
cflinto Feb 20, 2023
ebb8194
correction
cflinto Feb 20, 2023
99d818f
correct parsec_check_sanity_of_task_class
cflinto Feb 20, 2023
676a5f2
update the parametrized iterator so that it can be used in conditions
cflinto Feb 20, 2023
6ca5ced
declare the referrer iterators before normal locals so that it can be…
cflinto Feb 20, 2023
0f11901
correct some mistakes in jdf2c + separate in/out flows in parsec_debu…
cflinto Feb 22, 2023
6ce5803
fix error in parsec_helper_get_flow_index
cflinto Feb 22, 2023
e84e2be
construct dep_mask_out_of_flow_of_%s_%s_for_%s with dep_index instead…
cflinto Feb 22, 2023
6b355e6
correct brackets in iterate_successors
cflinto Feb 23, 2023
f5aa873
open brackets + increase the str size of the mask
cflinto Mar 2, 2023
f32bf5a
correct flow_id for gpu tasks + correct dump flow id + some minor cha…
cflinto Mar 9, 2023
c6b7d85
correct the filling ot the gpu_task structure
cflinto Mar 9, 2023
cce19f8
switch to a 64-bit mask for dependencies
cflinto Mar 10, 2023
1697ae6
separate dep_index lifting from the dep shift
cflinto Mar 14, 2023
d952ca2
fix nb of specializations given to parsec_update_dep_index_after_dep
cflinto Mar 28, 2023
92f8ddd
remove trash comments
cflinto Mar 31, 2023
31de484
stop requiring paranoid debug for parametrized flows to work
cflinto Mar 11, 2024
60a8aca
comment a part that glitches with paranoid asserts
cflinto Mar 13, 2024
5c5174a
put back the ifdef (the performance tests were done with this)
cflinto Mar 22, 2024
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: 3 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,8 @@ option(PARSEC_DIST_PRIORITIES
"Favor the communications that unlock the most prioritary tasks" ON)
option(PARSEC_DIST_COLLECTIVES
"Use optimized asynchronous operations where collective communication pattern is detected" ON)
option(PARSEC_ALLOW_PARAMETRIZED_FLOWS
"Enable parametrized flows" OFF)
set (PARSEC_DIST_SHORT_LIMIT 1 CACHE STRING
"Use the short protocol (no flow control) for messages smaller than the limit in KB. Performs better if smaller than the MTU")

Expand Down Expand Up @@ -689,7 +691,7 @@ int main(int argc, char *argv[]) {
if (CUDAToolkit_FOUND)
message(STATUS "Found CUDA ${CUDAToolkit_VERSION} in ${CUDAToolkit_LIBRARY_DIR}")
CMAKE_PUSH_CHECK_STATE()
list(APPEND CMAKE_REQUIRED_LIBRARIES CUDA::cudart)
list(APPEND CMAKE_REQUIRED_LIBRARIES CUDA::cudart) # This adds the wrong version of cudart if there are multiple versions installed
if(CUDAToolkit_VERSION VERSION_LESS "4.0")
set(PARSEC_HAVE_PEER_DEVICE_MEMORY_ACCESS 0)
else()
Expand Down
4 changes: 3 additions & 1 deletion parsec/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,8 @@ set(SOURCES
maxheap.c
hbbuffer.c
datarepo.c
termdet.c)
termdet.c
task_class.c)
if( PARSEC_PROF_TRACE )
list(APPEND SOURCES dictionary.c)
endif( PARSEC_PROF_TRACE )
Expand Down Expand Up @@ -302,6 +303,7 @@ if( BUILD_PARSEC )
${CMAKE_CURRENT_SOURCE_DIR}/bindthread.h
${CMAKE_CURRENT_SOURCE_DIR}/parsec_comm_engine.h
${CMAKE_CURRENT_SOURCE_DIR}/include/parsec/deprecated.h
${CMAKE_CURRENT_SOURCE_DIR}/task_class.h
DESTINATION ${PARSEC_INSTALL_INCLUDEDIR}/parsec)

install(FILES
Expand Down
6 changes: 4 additions & 2 deletions parsec/data_dist/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
set(sources
${CMAKE_CURRENT_LIST_DIR}/hash_datadist.c)
${CMAKE_CURRENT_LIST_DIR}/hash_datadist.c
${CMAKE_CURRENT_LIST_DIR}/multidimensional_grid.c)

add_subdirectory(matrix)

target_sources(parsec PRIVATE ${sources})

set_property(TARGET parsec
APPEND PROPERTY
PRIVATE_HEADER_H data_dist/hash_datadist.h)
PRIVATE_HEADER_H data_dist/hash_datadist.h
data_dist/multidimensional_grid.h)

4 changes: 2 additions & 2 deletions parsec/data_dist/matrix/map_operator.c
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ add_task_to_list(parsec_execution_stream_t *es,

static void iterate_successors(parsec_execution_stream_t *es,
const parsec_task_t *this_task,
uint32_t action_mask,
parsec_dependency_t action_mask,
parsec_ontask_function_t *ontask,
void *ontask_arg)
{
Expand Down Expand Up @@ -245,7 +245,7 @@ static void iterate_successors(parsec_execution_stream_t *es,

static int release_deps(parsec_execution_stream_t *es,
parsec_task_t *this_task,
uint32_t action_mask,
parsec_dependency_t action_mask,
parsec_remote_deps_t *deps)
{
parsec_task_t** ready_list;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -204,4 +204,3 @@ int parsec_redistribute(parsec_context_t *parsec,

return PARSEC_ERR_NOT_SUPPORTED;
}

Loading