Skip to content

Commit a1d9f8a

Browse files
committed
* Begin of MPI parallelization in HPCOM module. git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@22674 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 6cfb6f5 commit a1d9f8a

File tree

4 files changed

+280
-48
lines changed

4 files changed

+280
-48
lines changed

Compiler/Template/CodegenCpp.tpl

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ template translateModel(SimCode simCode, Boolean useFlatArrayNotation)
1616
let()= textFile(simulationFunctionsHeaderFile(simCode,modelInfo.functions,literals,false), 'OMCpp<%fileNamePrefix%>Functions.h')
1717
let()= textFile(simulationFunctionsFile(simCode, modelInfo.functions,literals,externalFunctionIncludes, false), 'OMCpp<%fileNamePrefix%>Functions.cpp')
1818
let()= textFile(simulationTypesHeaderFile(simCode,modelInfo.functions,literals, useFlatArrayNotation), 'OMCpp<%fileNamePrefix%>Types.h')
19-
let()= textFile(simulationMakefile(target,simCode,"","","",""), '<%fileNamePrefix%>.makefile')
19+
let()= textFile(simulationMakefile(target,simCode,"","","","",false), '<%fileNamePrefix%>.makefile')
2020
let()= textFile(simulationInitHeaderFile(simCode), 'OMCpp<%fileNamePrefix%>Initialize.h')
2121
let()= textFile(simulationInitCppFile(simCode,false),'OMCpp<%fileNamePrefix%>Initialize.cpp')
2222
let()= textFile(simulationJacobianHeaderFile(simCode), 'OMCpp<%fileNamePrefix%>Jacobian.h')
@@ -1615,8 +1615,6 @@ end notparamInit;
16151615

16161616

16171617

1618-
1619-
16201618
template simulationMainDLLib(SimCode simCode)
16211619
::=
16221620
match simCode
@@ -1639,7 +1637,9 @@ else
16391637
end simulationMainDLLib2;
16401638

16411639

1642-
template simulationMakefile(String target, SimCode simCode, String additionalLinkerFlags_GCC, String additionalLinkerFlags_MSVC, String additionalCFlags_GCC, String additionalCFlags_MSVC)
1640+
template simulationMakefile(String target, SimCode simCode, String additionalLinkerFlags_GCC,
1641+
String additionalLinkerFlags_MSVC, String additionalCFlags_GCC,
1642+
String additionalCFlags_MSVC, Boolean compileForMPI)
16431643
"Generates the contents of the makefile for the simulation case."
16441644
::=
16451645
let &timeMeasureLink = buffer "" /*BUFD*/
@@ -1733,15 +1733,20 @@ case "gcc" then
17331733
case("all_perf") then ' -Wl,-rpath,"<%omHome%>/lib/omc/cpp" -lOMCppExtensionUtilities -lOMCppExtensionUtilities_papi -lpapi'
17341734
else ' -Wl,-rpath,"<%omHome%>/lib/omc/cpp" -lOMCppExtensionUtilities'
17351735
end match
1736+
let CC = if (compileForMPI) then "mpicc" else '<%makefileParams.ccompiler%>'
1737+
let CXX = if (compileForMPI) then "mpicxx" else '<%makefileParams.cxxcompiler%>'
1738+
let MPIEnvVars = if (compileForMPI)
1739+
then 'OMPI_MPICC=<%makefileParams.ccompiler%> <%\n%>OMPI_MPICXX=<%makefileParams.cxxcompiler%>' else ""
17361740
<<
17371741
# Makefile generated by OpenModelica
17381742
OMHOME=<%makefileParams.omhome%>
17391743
include <%makefileParams.omhome%>/include/omc/cpp/ModelicaConfig.inc
17401744
include <%makefileParams.omhome%>/include/omc/cpp/ModelicaLibraryConfig.inc
17411745
# Simulations use -O0 by default
17421746
SIM_OR_DYNLOAD_OPT_LEVEL=-O0
1743-
CC=<%makefileParams.ccompiler%>
1744-
CXX=<%makefileParams.cxxcompiler%>
1747+
CC=<%CC%>
1748+
CXX=<%CXX%>
1749+
<%MPIEnvVars%>
17451750
LINK=<%makefileParams.linker%>
17461751
EXEEXT=<%makefileParams.exeext%>
17471752
DLLEXT=<%makefileParams.dllext%>

0 commit comments

Comments
 (0)