diff --git a/src/cgen.jl b/src/cgen.jl index 1acbb61..a8e2559 100644 --- a/src/cgen.jl +++ b/src/cgen.jl @@ -39,6 +39,13 @@ import ..ParallelIR import CompilerTools export setvectorizationlevel, generate, from_root, writec, compile, link, set_include_blas import ParallelAccelerator, ..getPackageRoot +import ParallelAccelerator.isDistributedMode + + +if isDistributedMode() + using MPI + MPI.Init() +end # uncomment this line for using Debug.jl #using Debug @@ -237,7 +244,12 @@ tokenXlate = Dict( replacedTokens = Set("#") scrubbedTokens = Set(",.({}):") -if CompilerTools.DebugMsg.PROSPECT_DEV_MODE +if isDistributedMode() + package_root = getPackageRoot() + rank = MPI.Comm_rank(MPI.COMM_WORLD) + generated_file_dir = "$package_root/deps/generated$rank" + mkdir(generated_file_dir) +elseif CompilerTools.DebugMsg.PROSPECT_DEV_MODE package_root = getPackageRoot() generated_file_dir = "$package_root/deps/generated" else @@ -254,13 +266,16 @@ function generate_new_file_name() return "cgen_output$file_counter" end -function cleanup_generated_files() +function CGen_finalize() if !CompilerTools.DebugMsg.PROSPECT_DEV_MODE rm(generated_file_dir; recursive=true) end + if isDistributedMode() + MPI.Finalize() + end end -atexit(cleanup_generated_files) +atexit(CGen_finalize) function __init__() packageroot = joinpath(dirname(@__FILE__), "..")