From 81604922f4b3fb2aaa8b7e4767fd059e4b7a234f Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Wed, 4 Nov 2020 16:36:29 -0600 Subject: [PATCH 01/18] definitions for projections tracing --- CMakeLists.txt | 3 ++- src/ck-core/init.C | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 34d775812e..7db70036e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -894,7 +894,8 @@ if(${TARGET} STREQUAL "charm4py") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) add_library(charm SHARED empty.cpp) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib_so) - target_link_libraries(charm ck conv-core conv-util memory-default conv-machine threads-default conv-partition tmgr hwloc_embedded ldb-rand conv-ldb "-Llib/ -standalone -whole-archive -c++stl -shared") + set(CMK_TRACE_ENABLED 1) + target_link_libraries(charm ck conv-core conv-util memory-default conv-machine threads-default conv-partition tmgr hwloc_embedded ldb-rand conv-ldb trace-converse "-Llib/ -standalone -whole-archive -c++stl -shared") add_dependencies(charm hwloc) endif() diff --git a/src/ck-core/init.C b/src/ck-core/init.C index 305d052817..d6a5fa1067 100644 --- a/src/ck-core/init.C +++ b/src/ck-core/init.C @@ -75,6 +75,7 @@ never be excluded... #include "CkSyncBarrier.decl.h" #if CMK_CHARM4PY #include "TreeLB.h" +// #include "trace-projectionsBOC.h" #endif #if CMK_CUDA @@ -89,6 +90,11 @@ extern void QdCreate(int); extern void QdProcess(int); #endif +#if CMK_CHARM4PY +extern void _createTraceprojections(char **argv); +extern void _registerTraceProjections(); +#endif + void CkRestartMain(const char* dirname, CkArgMsg* args); #define DEBUGF(x) //CmiPrintf x; @@ -1518,6 +1524,8 @@ void _initCharm(int unused_argc, char **argv) have to somehow be registered during init. */ _registerTreeLB(); + _registerTraceProjections(); + #endif /** From 00c24eb5cc88636b80e099efd0a79f1a2248c646 Mon Sep 17 00:00:00 2001 From: Ronak Buch Date: Thu, 5 Nov 2020 14:38:27 -0500 Subject: [PATCH 02/18] Link trace-projections instead of trace-converse and don't build hello test when making shared lib for charm4py --- CMakeLists.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7db70036e9..f1eef8c696 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -895,17 +895,17 @@ if(${TARGET} STREQUAL "charm4py") add_library(charm SHARED empty.cpp) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib_so) set(CMK_TRACE_ENABLED 1) - target_link_libraries(charm ck conv-core conv-util memory-default conv-machine threads-default conv-partition tmgr hwloc_embedded ldb-rand conv-ldb trace-converse "-Llib/ -standalone -whole-archive -c++stl -shared") + target_link_libraries(charm ck conv-core conv-util memory-default conv-machine threads-default conv-partition tmgr hwloc_embedded ldb-rand conv-ldb trace-projections "-Llib/ -standalone -whole-archive -c++stl -shared") add_dependencies(charm hwloc) +else() + # Check that we are able to build and link an executable + add_executable(hello ${CMAKE_SOURCE_DIR}/tests/charm++/simplearrayhello/hello.C) + add_dependencies(hello ck ldb-rand memory-default threads-default conv-static + conv-core ckmain conv-machine conv-util conv-partition conv-ldb ckqt + moduleNDMeshStreamer modulecompletion tmgr) endif() -# Check that we are able to build and link an executable -add_executable(hello ${CMAKE_SOURCE_DIR}/tests/charm++/simplearrayhello/hello.C) -add_dependencies(hello ck ldb-rand memory-default threads-default conv-static - conv-core ckmain conv-machine conv-util conv-partition conv-ldb ckqt - moduleNDMeshStreamer modulecompletion tmgr) - # Create conv-mach-opt.sh set(optfile_sh ${CMAKE_BINARY_DIR}/include/conv-mach-opt.sh) From bb520b9f9dcf694afd705a210f9b09eb939b90c9 Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Thu, 12 Nov 2020 08:40:57 -0600 Subject: [PATCH 03/18] include traces --- CMakeLists.txt | 2 +- src/ck-core/charm.h | 3 ++- src/ck-core/init.C | 12 +++++++++++- src/ck-core/register.C | 9 +++++++-- src/ck-perf/trace-common.C | 3 +-- src/conv-core/convcore.C | 1 + 6 files changed, 23 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f1eef8c696..f6e4a07d9a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -440,6 +440,7 @@ endif() set(CMK_CHARM4PY 0) if(${TARGET} STREQUAL "charm4py") set(CMK_CHARM4PY 1) + set(CMK_TRACE_ENABLED 1) # Create libcharm.so for Charm4py add_compile_options(-build-shared) set(BUILDOPTS "${BUILDOPTS} -build-shared") @@ -894,7 +895,6 @@ if(${TARGET} STREQUAL "charm4py") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) add_library(charm SHARED empty.cpp) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib_so) - set(CMK_TRACE_ENABLED 1) target_link_libraries(charm ck conv-core conv-util memory-default conv-machine threads-default conv-partition tmgr hwloc_embedded ldb-rand conv-ldb trace-projections "-Llib/ -standalone -whole-archive -c++stl -shared") add_dependencies(charm hwloc) diff --git a/src/ck-core/charm.h b/src/ck-core/charm.h index f449488e3c..0a4b4fd2cd 100644 --- a/src/ck-core/charm.h +++ b/src/ck-core/charm.h @@ -217,7 +217,8 @@ extern void CkRegisterMainChareExt(const char *s, int numEntryMethods, int *char extern void CkRegisterGroupExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterSectionManagerExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterArrayMapExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); -extern void CkRegisterArrayExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); +/* extern void CkRegisterArrayExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); */ + extern void CkRegisterArrayExt(const char *s, const char **emNames, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterReadonlyExt(const char *name, const char *type, size_t msgSize, char *msg); #endif diff --git a/src/ck-core/init.C b/src/ck-core/init.C index d6a5fa1067..7c13eda336 100644 --- a/src/ck-core/init.C +++ b/src/ck-core/init.C @@ -75,6 +75,7 @@ never be excluded... #include "CkSyncBarrier.decl.h" #if CMK_CHARM4PY #include "TreeLB.h" + // #include "trace-projectionsBOC.h" #endif @@ -91,8 +92,13 @@ extern void QdProcess(int); #endif #if CMK_CHARM4PY -extern void _createTraceprojections(char **argv); +#warning "Charm4Py Being built!!!!" extern void _registerTraceProjections(); +extern void _createTraceprojections(char **argv); +void _createTraces(char **argv) { (void)argv; + CmiPrintf("Creating traces!\n"); +_createTraceprojections(argv); +} #endif void CkRestartMain(const char* dirname, CkArgMsg* args); @@ -1316,6 +1322,7 @@ void _initCharm(int unused_argc, char **argv) { int inCommThread = (CmiMyRank() == CmiMyNodeSize()); + CkPrintf("INIT CHARM!!!!!\n\n\n\n\n"); DEBUGF(("[%d,%.6lf ] _initCharm started\n",CmiMyPe(),CmiWallTimer())); std::set_terminate([](){ CkAbort("Unhandled C++ exception in user code.\n");}); @@ -1456,6 +1463,7 @@ void _initCharm(int unused_argc, char **argv) initCharmProjections(); #if CMK_TRACE_IN_CHARM // initialize trace module in ck + CkPrintf("CMKT RACE IN CHARM\n"); traceCharmInit(argv); #endif @@ -1523,8 +1531,10 @@ void _initCharm(int unused_argc, char **argv) Without an executable (charm4py just uses libcharm.so), the load balancers in libcharm.so have to somehow be registered during init. */ + _registerTreeLB(); _registerTraceProjections(); + // _createTraces(argv); #endif diff --git a/src/ck-core/register.C b/src/ck-core/register.C index 10eeebab5c..0e1cfdbe6a 100644 --- a/src/ck-core/register.C +++ b/src/ck-core/register.C @@ -33,6 +33,8 @@ void _registerInit(void) int CkRegisterMsg(const char *name, CkPackFnPtr pack, CkUnpackFnPtr unpack, CkDeallocFnPtr dealloc, size_t size) { + auto messageSize = _msgTable.size(); + CkPrintf( "Creating message %d with name %s\n", messageSize, name ); return _msgTable.add(new MsgInfo(name, pack, unpack, dealloc, size)); } @@ -145,7 +147,7 @@ void CkRegisterArrayMapExt(const char *s, int numEntryMethods, int *chareIdx, in *startEpIdx = epIdxCtor; } -void CkRegisterArrayExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx) { +void CkRegisterArrayExt(const char *s, const char **emNames, int numEntryMethods, int *chareIdx, int *startEpIdx) { int __idx = CkRegisterChare(s, sizeof(ArrayElemExt), TypeArray); CkRegisterBase(__idx, CkIndex_ArrayElement::__idx); @@ -158,7 +160,10 @@ void CkRegisterArrayExt(const char *s, int numEntryMethods, int *chareIdx, int * CkRegisterEp(s, ArrayElemExt::__AtSyncEntryMethod, 0, __idx, 0); for (int i=3; i < numEntryMethods; i++) - CkRegisterEp(s, ArrayElemExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); + { + CkPrintf("Name: %s\n", emNames[i]); + CkRegisterEp(emNames[i], ArrayElemExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); + } *chareIdx = __idx; *startEpIdx = epIdxCtor; diff --git a/src/ck-perf/trace-common.C b/src/ck-perf/trace-common.C index e688cc9b33..7310fb0c98 100644 --- a/src/ck-perf/trace-common.C +++ b/src/ck-perf/trace-common.C @@ -467,10 +467,8 @@ static inline void _traceInit(char **argv) // check if trace is turned on/off for this pe CkpvAccess(traceOnPe) = checkTraceOnPe(argv); -#if !CMK_CHARM4PY // defined in moduleInit.C _createTraces(argv); -#endif // Now setup the control point tracing module if desired. It is always compiled/linked in, but is not always enabled // FIXME: make sure it is safe to use argv in SMP version @@ -484,6 +482,7 @@ static inline void _traceInit(char **argv) // set trace on/off + CkPrintf("Setting up the traces!\n"); CkpvAccess(_traces)->setTraceOnPE(CkpvAccess(traceOnPe)); #if CMK_SMP_TRACE_COMMTHREAD diff --git a/src/conv-core/convcore.C b/src/conv-core/convcore.C index 7fa39f59d6..15376301fb 100644 --- a/src/conv-core/convcore.C +++ b/src/conv-core/convcore.C @@ -4047,6 +4047,7 @@ void ConverseCommonInit(char **argv) #endif #if CMK_TRACE_ENABLED + CmiPrintf("Initializing Tracing!!!!\n\n\n\n"); traceInit(argv); /*initTraceCore(argv);*/ /* projector */ #endif From 5440982ca859fe6cc98818191177d744c91569ca Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Fri, 13 Nov 2020 09:41:09 -0600 Subject: [PATCH 04/18] debugging --- src/ck-core/register.C | 5 +++-- src/ck-perf/trace-common.C | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ck-core/register.C b/src/ck-core/register.C index 0e1cfdbe6a..8e1c49dae8 100644 --- a/src/ck-core/register.C +++ b/src/ck-core/register.C @@ -158,11 +158,12 @@ void CkRegisterArrayExt(const char *s, const char **emNames, int numEntryMethods CkRegisterMigCtor(__idx, epidx); CkRegisterEp(s, ArrayElemExt::__AtSyncEntryMethod, 0, __idx, 0); + CkPrintf("OnPE: %d, Registering array chare: %s\n", CkMyPe(), s); for (int i=3; i < numEntryMethods; i++) { - CkPrintf("Name: %s\n", emNames[i]); - CkRegisterEp(emNames[i], ArrayElemExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); + CkPrintf("OnPE: %d, Name: %s\n", CkMyPe(), emNames[i]); + CkRegisterEp(emNames[i], ArrayElemExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); } *chareIdx = __idx; diff --git a/src/ck-perf/trace-common.C b/src/ck-perf/trace-common.C index 7310fb0c98..7fccea5a2a 100644 --- a/src/ck-perf/trace-common.C +++ b/src/ck-perf/trace-common.C @@ -276,8 +276,11 @@ void traceWriteSTS(FILE *stsfp,int nUserEvents) { for(i=0;i<_chareTable.size();i++) fprintf(stsfp, "CHARE %d \"%s\" %d\n", (int)i, _chareTable[i]->name, _chareTable[i]->ndims); for(i=0;i<_entryTable.size();i++) + { + CkPrintf("Chare entry name: %s\n", _entryTable[i]->name); fprintf(stsfp, "ENTRY CHARE %d \"%s\" %d %d\n", (int)i, _entryTable[i]->name, (int)_entryTable[i]->chareIdx, (int)_entryTable[i]->msgIdx); + } for(i=0;i<_msgTable.size();i++) fprintf(stsfp, "MESSAGE %d %u\n", (int)i, (int)_msgTable[i]->size); } From b856d1d6a5d6108025f19a1b04f701fa63516747 Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Fri, 20 Nov 2020 11:51:00 -0600 Subject: [PATCH 05/18] EM names now tracked --- src/ck-core/charm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ck-core/charm.h b/src/ck-core/charm.h index 0a4b4fd2cd..f5debd430e 100644 --- a/src/ck-core/charm.h +++ b/src/ck-core/charm.h @@ -218,7 +218,7 @@ extern void CkRegisterGroupExt(const char *s, int numEntryMethods, int *chareIdx extern void CkRegisterSectionManagerExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterArrayMapExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); /* extern void CkRegisterArrayExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); */ - extern void CkRegisterArrayExt(const char *s, const char **emNames, int numEntryMethods, int *chareIdx, int *startEpIdx); + extern void CkRegisterArrayExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterReadonlyExt(const char *name, const char *type, size_t msgSize, char *msg); #endif From f667d4d298ad5d31b5bdc3a7a36c135825f9f385 Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Fri, 20 Nov 2020 11:51:19 -0600 Subject: [PATCH 06/18] EM names now tracked --- src/ck-core/register.C | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ck-core/register.C b/src/ck-core/register.C index 8e1c49dae8..cea67a7295 100644 --- a/src/ck-core/register.C +++ b/src/ck-core/register.C @@ -147,7 +147,7 @@ void CkRegisterArrayMapExt(const char *s, int numEntryMethods, int *chareIdx, in *startEpIdx = epIdxCtor; } -void CkRegisterArrayExt(const char *s, const char **emNames, int numEntryMethods, int *chareIdx, int *startEpIdx) { +void CkRegisterArrayExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx) { int __idx = CkRegisterChare(s, sizeof(ArrayElemExt), TypeArray); CkRegisterBase(__idx, CkIndex_ArrayElement::__idx); @@ -160,7 +160,7 @@ void CkRegisterArrayExt(const char *s, const char **emNames, int numEntryMethods CkRegisterEp(s, ArrayElemExt::__AtSyncEntryMethod, 0, __idx, 0); CkPrintf("OnPE: %d, Registering array chare: %s\n", CkMyPe(), s); - for (int i=3; i < numEntryMethods; i++) + for (int i=emNamesStart+3; i < emNamesStart+numEntryMethods; i++) { CkPrintf("OnPE: %d, Name: %s\n", CkMyPe(), emNames[i]); CkRegisterEp(emNames[i], ArrayElemExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); From f0546312eb86595a128165f8f837f1f0c9a56c92 Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Mon, 23 Nov 2020 12:05:25 -0600 Subject: [PATCH 07/18] remove debug traces --- src/ck-core/register.C | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ck-core/register.C b/src/ck-core/register.C index cea67a7295..97860b609d 100644 --- a/src/ck-core/register.C +++ b/src/ck-core/register.C @@ -158,11 +158,9 @@ void CkRegisterArrayExt(const char *s, const char **emNames, int emNamesStart, i CkRegisterMigCtor(__idx, epidx); CkRegisterEp(s, ArrayElemExt::__AtSyncEntryMethod, 0, __idx, 0); - CkPrintf("OnPE: %d, Registering array chare: %s\n", CkMyPe(), s); for (int i=emNamesStart+3; i < emNamesStart+numEntryMethods; i++) { - CkPrintf("OnPE: %d, Name: %s\n", CkMyPe(), emNames[i]); CkRegisterEp(emNames[i], ArrayElemExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); } From cbe9abc8306232ab1c276bdabbe28b2f01144d1d Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Mon, 23 Nov 2020 12:09:39 -0600 Subject: [PATCH 08/18] remove extra tracing --- src/ck-core/init.C | 4 ---- src/ck-core/register.C | 1 - src/ck-perf/trace-common.C | 8 ++------ src/conv-core/convcore.C | 1 - 4 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/ck-core/init.C b/src/ck-core/init.C index 7c13eda336..b181c38268 100644 --- a/src/ck-core/init.C +++ b/src/ck-core/init.C @@ -92,11 +92,9 @@ extern void QdProcess(int); #endif #if CMK_CHARM4PY -#warning "Charm4Py Being built!!!!" extern void _registerTraceProjections(); extern void _createTraceprojections(char **argv); void _createTraces(char **argv) { (void)argv; - CmiPrintf("Creating traces!\n"); _createTraceprojections(argv); } #endif @@ -1322,7 +1320,6 @@ void _initCharm(int unused_argc, char **argv) { int inCommThread = (CmiMyRank() == CmiMyNodeSize()); - CkPrintf("INIT CHARM!!!!!\n\n\n\n\n"); DEBUGF(("[%d,%.6lf ] _initCharm started\n",CmiMyPe(),CmiWallTimer())); std::set_terminate([](){ CkAbort("Unhandled C++ exception in user code.\n");}); @@ -1463,7 +1460,6 @@ void _initCharm(int unused_argc, char **argv) initCharmProjections(); #if CMK_TRACE_IN_CHARM // initialize trace module in ck - CkPrintf("CMKT RACE IN CHARM\n"); traceCharmInit(argv); #endif diff --git a/src/ck-core/register.C b/src/ck-core/register.C index 97860b609d..73f6da0a78 100644 --- a/src/ck-core/register.C +++ b/src/ck-core/register.C @@ -34,7 +34,6 @@ int CkRegisterMsg(const char *name, CkPackFnPtr pack, CkUnpackFnPtr unpack, CkDeallocFnPtr dealloc, size_t size) { auto messageSize = _msgTable.size(); - CkPrintf( "Creating message %d with name %s\n", messageSize, name ); return _msgTable.add(new MsgInfo(name, pack, unpack, dealloc, size)); } diff --git a/src/ck-perf/trace-common.C b/src/ck-perf/trace-common.C index 7fccea5a2a..fa04c90d02 100644 --- a/src/ck-perf/trace-common.C +++ b/src/ck-perf/trace-common.C @@ -276,11 +276,8 @@ void traceWriteSTS(FILE *stsfp,int nUserEvents) { for(i=0;i<_chareTable.size();i++) fprintf(stsfp, "CHARE %d \"%s\" %d\n", (int)i, _chareTable[i]->name, _chareTable[i]->ndims); for(i=0;i<_entryTable.size();i++) - { - CkPrintf("Chare entry name: %s\n", _entryTable[i]->name); - fprintf(stsfp, "ENTRY CHARE %d \"%s\" %d %d\n", (int)i, _entryTable[i]->name, - (int)_entryTable[i]->chareIdx, (int)_entryTable[i]->msgIdx); - } + fprintf(stsfp, "ENTRY CHARE %d \"%s\" %d %d\n", (int)i, _entryTable[i]->name, + (int)_entryTable[i]->chareIdx, (int)_entryTable[i]->msgIdx); for(i=0;i<_msgTable.size();i++) fprintf(stsfp, "MESSAGE %d %u\n", (int)i, (int)_msgTable[i]->size); } @@ -485,7 +482,6 @@ static inline void _traceInit(char **argv) // set trace on/off - CkPrintf("Setting up the traces!\n"); CkpvAccess(_traces)->setTraceOnPE(CkpvAccess(traceOnPe)); #if CMK_SMP_TRACE_COMMTHREAD diff --git a/src/conv-core/convcore.C b/src/conv-core/convcore.C index 15376301fb..7fa39f59d6 100644 --- a/src/conv-core/convcore.C +++ b/src/conv-core/convcore.C @@ -4047,7 +4047,6 @@ void ConverseCommonInit(char **argv) #endif #if CMK_TRACE_ENABLED - CmiPrintf("Initializing Tracing!!!!\n\n\n\n"); traceInit(argv); /*initTraceCore(argv);*/ /* projector */ #endif From 15b507484a433f5b6bf778b368c8b83847ecbcdb Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Tue, 24 Nov 2020 13:55:05 -0600 Subject: [PATCH 09/18] projections support for groups --- src/ck-core/charm.h | 3 ++- src/ck-core/register.C | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/ck-core/charm.h b/src/ck-core/charm.h index f5debd430e..57ede6acce 100644 --- a/src/ck-core/charm.h +++ b/src/ck-core/charm.h @@ -214,7 +214,8 @@ extern void CkRegisterGroupIrr(int chareIndex,int isIrr); extern void CkRegisterBase(int derivedIdx, int baseIdx); #if CMK_CHARM4PY extern void CkRegisterMainChareExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); -extern void CkRegisterGroupExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); +/* extern void CkRegisterGroupExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); */ +extern void CkRegisterGroupExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterSectionManagerExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterArrayMapExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); /* extern void CkRegisterArrayExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); */ diff --git a/src/ck-core/register.C b/src/ck-core/register.C index 73f6da0a78..29cb3796e0 100644 --- a/src/ck-core/register.C +++ b/src/ck-core/register.C @@ -102,15 +102,18 @@ void CkRegisterGroupIrr(int chareIndex,int isIrr){ // TODO give a unique name to entry methods when calling CkRegisterEp // (no need has appeared for this so this is very low priority) -void CkRegisterGroupExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx) { +void CkRegisterGroupExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx) { int __idx = CkRegisterChare(s, sizeof(GroupExt), TypeGroup); CkRegisterBase(__idx, CkIndex_IrrGroup::__idx); int epIdxCtor = CkRegisterEp(s, GroupExt::__GroupExt, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); CkRegisterDefaultCtor(__idx, epIdxCtor); - for (int i=1; i < numEntryMethods; i++) - CkRegisterEp(s, GroupExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); + for (int i=emNamesStart + 1; i < emNamesStart+numEntryMethods; i++) + { + CkPrintf("Registering group entry method: %s\n", emNames[i]); + CkRegisterEp(emNames[i], GroupExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); + } *chareIdx = __idx; *startEpIdx = epIdxCtor; From bb51a62293af475262bbcc7bcf238a80e0e73309 Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Wed, 2 Dec 2020 10:34:56 -0600 Subject: [PATCH 10/18] 'CkRegisterMainChareExt' now registers actual entry method names --- src/ck-core/charm.h | 4 +++- src/ck-core/register.C | 9 +++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/ck-core/charm.h b/src/ck-core/charm.h index 57ede6acce..c74b647da2 100644 --- a/src/ck-core/charm.h +++ b/src/ck-core/charm.h @@ -213,7 +213,9 @@ extern void CkRegisterGroupIrr(int chareIndex,int isIrr); /** Register the chare baseIdx as a base class of the chare derivedIdx. */ extern void CkRegisterBase(int derivedIdx, int baseIdx); #if CMK_CHARM4PY -extern void CkRegisterMainChareExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); +/* extern void CkRegisterMainChareExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); */ + void CkRegisterMainChareExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); +extern void CkRegisterGroupExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); /* extern void CkRegisterGroupExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); */ extern void CkRegisterGroupExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterSectionManagerExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); diff --git a/src/ck-core/register.C b/src/ck-core/register.C index 29cb3796e0..7a577011d5 100644 --- a/src/ck-core/register.C +++ b/src/ck-core/register.C @@ -111,7 +111,6 @@ void CkRegisterGroupExt(const char *s, const char **emNames, int emNamesStart, i for (int i=emNamesStart + 1; i < emNamesStart+numEntryMethods; i++) { - CkPrintf("Registering group entry method: %s\n", emNames[i]); CkRegisterEp(emNames[i], GroupExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); } @@ -190,7 +189,7 @@ int CkRegisterMainChare(int chareIdx, int entryIdx) #if CMK_CHARM4PY -void CkRegisterMainChareExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx) { +void CkRegisterMainChareExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx) { int __idx = CkRegisterChare(s, sizeof(MainchareExt), TypeMainChare); CkRegisterBase(__idx, CkIndex_Chare::__idx); @@ -198,8 +197,10 @@ void CkRegisterMainChareExt(const char *s, int numEntryMethods, int *chareIdx, i CkRegisterMessagePupFn(epIdxCtor, (CkMessagePupFn)CkArgMsg::ckDebugPup); CkRegisterMainChare(__idx, epIdxCtor); - for (int i=1; i < numEntryMethods; i++) - CkRegisterEp(s, MainchareExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); + for (int i=emNamesStart+1; i < emNamesStart+numEntryMethods; i++) + { + CkRegisterEp(emNames[i], MainchareExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); + } *chareIdx = __idx; *startEpIdx = epIdxCtor; From 4f210fa71d2f5a28cdadf48c5e12ff6e2683550a Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Thu, 3 Dec 2020 09:16:16 -0600 Subject: [PATCH 11/18] added registration for sections --- src/ck-core/charm.h | 9 +++------ src/ck-core/register.C | 8 +++++--- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/ck-core/charm.h b/src/ck-core/charm.h index c74b647da2..e922fc03ee 100644 --- a/src/ck-core/charm.h +++ b/src/ck-core/charm.h @@ -213,15 +213,12 @@ extern void CkRegisterGroupIrr(int chareIndex,int isIrr); /** Register the chare baseIdx as a base class of the chare derivedIdx. */ extern void CkRegisterBase(int derivedIdx, int baseIdx); #if CMK_CHARM4PY -/* extern void CkRegisterMainChareExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); */ - void CkRegisterMainChareExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); +void CkRegisterMainChareExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterGroupExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); -/* extern void CkRegisterGroupExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); */ extern void CkRegisterGroupExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); -extern void CkRegisterSectionManagerExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); +extern void CkRegisterSectionManagerExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterArrayMapExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); -/* extern void CkRegisterArrayExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); */ - extern void CkRegisterArrayExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); +extern void CkRegisterArrayExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterReadonlyExt(const char *name, const char *type, size_t msgSize, char *msg); #endif diff --git a/src/ck-core/register.C b/src/ck-core/register.C index 7a577011d5..c656692d27 100644 --- a/src/ck-core/register.C +++ b/src/ck-core/register.C @@ -118,7 +118,7 @@ void CkRegisterGroupExt(const char *s, const char **emNames, int emNamesStart, i *startEpIdx = epIdxCtor; } -void CkRegisterSectionManagerExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx) { +void CkRegisterSectionManagerExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx) { int __idx = CkRegisterChare(s, sizeof(SectionManagerExt), TypeGroup); CkRegisterBase(__idx, CkIndex_IrrGroup::__idx); @@ -127,8 +127,10 @@ void CkRegisterSectionManagerExt(const char *s, int numEntryMethods, int *chareI CkRegisterEp(s, SectionManagerExt::__sendToSection, CkMarshallMsg::__idx, __idx, 0); - for (int i=2; i < numEntryMethods; i++) - CkRegisterEp(s, SectionManagerExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); + for (int i=emNamesStart+2; i < numEntryMethods+emNamesStart; i++) + { + CkRegisterEp(emNames[i], SectionManagerExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); + } *chareIdx = __idx; *startEpIdx = epIdxCtor; From 9b1f8e9524a49f4b03116f2a2d9be3ef999db433 Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Thu, 17 Dec 2020 09:04:44 -0600 Subject: [PATCH 12/18] add Charm4Py registration for ArrayMaps --- src/ck-core/charm.h | 2 +- src/ck-core/register.C | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ck-core/charm.h b/src/ck-core/charm.h index e922fc03ee..d7dfb19db2 100644 --- a/src/ck-core/charm.h +++ b/src/ck-core/charm.h @@ -217,7 +217,7 @@ void CkRegisterMainChareExt(const char *s, const char **emNames, int emNamesStar extern void CkRegisterGroupExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterGroupExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterSectionManagerExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); -extern void CkRegisterArrayMapExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx); +extern void CkRegisterArrayMapExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterArrayExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx); extern void CkRegisterReadonlyExt(const char *name, const char *type, size_t msgSize, char *msg); #endif diff --git a/src/ck-core/register.C b/src/ck-core/register.C index c656692d27..e4f4251376 100644 --- a/src/ck-core/register.C +++ b/src/ck-core/register.C @@ -125,7 +125,7 @@ void CkRegisterSectionManagerExt(const char *s, const char **emNames, int emName int epIdxCtor = CkRegisterEp(s, SectionManagerExt::__SectionManagerExt, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); CkRegisterDefaultCtor(__idx, epIdxCtor); - CkRegisterEp(s, SectionManagerExt::__sendToSection, CkMarshallMsg::__idx, __idx, 0); + CkRegisterEp("sendToSection", SectionManagerExt::__sendToSection, CkMarshallMsg::__idx, __idx, 0); for (int i=emNamesStart+2; i < numEntryMethods+emNamesStart; i++) { @@ -136,7 +136,7 @@ void CkRegisterSectionManagerExt(const char *s, const char **emNames, int emName *startEpIdx = epIdxCtor; } -void CkRegisterArrayMapExt(const char *s, int numEntryMethods, int *chareIdx, int *startEpIdx) { +void CkRegisterArrayMapExt(const char *s, const char **emNames, int emNamesStart, int numEntryMethods, int *chareIdx, int *startEpIdx) { int __idx = CkRegisterChare(s, sizeof(ArrayMapExt), TypeGroup); CkRegisterBase(__idx, CkIndex_IrrGroup::__idx); @@ -144,7 +144,7 @@ void CkRegisterArrayMapExt(const char *s, int numEntryMethods, int *chareIdx, in CkRegisterDefaultCtor(__idx, epIdxCtor); for (int i=1; i < numEntryMethods; i++) - CkRegisterEp(s, ArrayMapExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); + CkRegisterEp(emNames[i], ArrayMapExt::__entryMethod, CkMarshallMsg::__idx, __idx, 0+CK_EP_NOKEEP); *chareIdx = __idx; *startEpIdx = epIdxCtor; From efc585e371ef65a8b7ed34886bc1d977f18585bc Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Wed, 23 Dec 2020 15:21:58 -0600 Subject: [PATCH 13/18] Charm4Py tracing can now be disabled and enabled --- CMakeLists.txt | 7 +++++-- src/ck-core/init.C | 29 +++++++++++++++++------------ 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f6e4a07d9a..6ae85776fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -440,7 +440,6 @@ endif() set(CMK_CHARM4PY 0) if(${TARGET} STREQUAL "charm4py") set(CMK_CHARM4PY 1) - set(CMK_TRACE_ENABLED 1) # Create libcharm.so for Charm4py add_compile_options(-build-shared) set(BUILDOPTS "${BUILDOPTS} -build-shared") @@ -895,7 +894,11 @@ if(${TARGET} STREQUAL "charm4py") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) add_library(charm SHARED empty.cpp) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib_so) - target_link_libraries(charm ck conv-core conv-util memory-default conv-machine threads-default conv-partition tmgr hwloc_embedded ldb-rand conv-ldb trace-projections "-Llib/ -standalone -whole-archive -c++stl -shared") + target_link_libraries(charm ck conv-core conv-util memory-default conv-machine threads-default conv-partition tmgr hwloc_embedded ldb-rand conv-ldb "-Llib/ -standalone -whole-archive -c++stl -shared") + + if(${TRACING}) + target_link_libraries(charm trace-projections "-Llib/ -standalone -whole-archive -c++stl -shared") + endif() add_dependencies(charm hwloc) else() diff --git a/src/ck-core/init.C b/src/ck-core/init.C index b181c38268..0b3459851a 100644 --- a/src/ck-core/init.C +++ b/src/ck-core/init.C @@ -91,12 +91,15 @@ extern void QdCreate(int); extern void QdProcess(int); #endif -#if CMK_CHARM4PY +#if CMK_CHARM4PY && CMK_TRACE_ENABLED extern void _registerTraceProjections(); extern void _createTraceprojections(char **argv); void _createTraces(char **argv) { (void)argv; _createTraceprojections(argv); } + +#elif CMK_CHARM4PY +void _createTraces(char **argv){}; #endif void CkRestartMain(const char* dirname, CkArgMsg* args); @@ -1520,17 +1523,19 @@ void _initCharm(int unused_argc, char **argv) _registerCkMemCheckpoint(); #endif #if CMK_CHARM4PY - /** - Load balancers are currently registered in Charm++ through a C file that is generated and - and compiled by charmc when making an executable. That file contains appropriate calls to - register whatever load balancers are being linked in. - Without an executable (charm4py just uses libcharm.so), the load balancers in libcharm.so - have to somehow be registered during init. - */ - - _registerTreeLB(); - _registerTraceProjections(); - // _createTraces(argv); + /** + Load balancers are currently registered in Charm++ through a C file that is generated and + and compiled by charmc when making an executable. That file contains appropriate calls to + register whatever load balancers are being linked in. + Without an executable (charm4py just uses libcharm.so), the load balancers in libcharm.so + have to somehow be registered during init. + */ + _registerTreeLB(); + +#if CMK_TRACE_ENABLED + _registerTraceProjections(); +#endif + #endif From 834e94228aae10df32a0cd142759b0ed86ecc306 Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Mon, 28 Dec 2020 10:10:18 -0600 Subject: [PATCH 14/18] Add tracemode summary to Charm4Py tracing --- CMakeLists.txt | 2 +- src/ck-core/init.C | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6ae85776fb..c23f7c6870 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -897,7 +897,7 @@ if(${TARGET} STREQUAL "charm4py") target_link_libraries(charm ck conv-core conv-util memory-default conv-machine threads-default conv-partition tmgr hwloc_embedded ldb-rand conv-ldb "-Llib/ -standalone -whole-archive -c++stl -shared") if(${TRACING}) - target_link_libraries(charm trace-projections "-Llib/ -standalone -whole-archive -c++stl -shared") + target_link_libraries(charm trace-summary trace-projections "-Llib/ -standalone -whole-archive -c++stl -shared") endif() add_dependencies(charm hwloc) diff --git a/src/ck-core/init.C b/src/ck-core/init.C index 0b3459851a..7d6806ccb9 100644 --- a/src/ck-core/init.C +++ b/src/ck-core/init.C @@ -93,9 +93,13 @@ extern void QdProcess(int); #if CMK_CHARM4PY && CMK_TRACE_ENABLED extern void _registerTraceProjections(); +extern void _registerTraceSummary(); extern void _createTraceprojections(char **argv); +extern void _createTracesummary(char **argv); + void _createTraces(char **argv) { (void)argv; _createTraceprojections(argv); +_createTracesummary(argv); } #elif CMK_CHARM4PY @@ -1534,6 +1538,7 @@ void _initCharm(int unused_argc, char **argv) #if CMK_TRACE_ENABLED _registerTraceProjections(); + _registerTraceSummary(); #endif From aeaf72d3acd50aab4bedbe7f51f4fb1b1a05cd06 Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Mon, 28 Dec 2020 10:10:55 -0600 Subject: [PATCH 15/18] Remove unnecessary change --- src/ck-core/init.C | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ck-core/init.C b/src/ck-core/init.C index 7d6806ccb9..f5971cc9cc 100644 --- a/src/ck-core/init.C +++ b/src/ck-core/init.C @@ -75,8 +75,6 @@ never be excluded... #include "CkSyncBarrier.decl.h" #if CMK_CHARM4PY #include "TreeLB.h" - -// #include "trace-projectionsBOC.h" #endif #if CMK_CUDA From 570058b1b62713e2bdd90065b12c994e6eed05b1 Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Mon, 28 Dec 2020 11:30:12 -0600 Subject: [PATCH 16/18] Temporarily use the projections_support branch of Charm4Py for testing --- .github/workflows/charm4py.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/charm4py.yml b/.github/workflows/charm4py.yml index 75d27e514a..cafced68da 100644 --- a/.github/workflows/charm4py.yml +++ b/.github/workflows/charm4py.yml @@ -16,7 +16,7 @@ jobs: run: | pip install setuptools cython cffi greenlet numpy pip3 install setuptools cython cffi greenlet numpy - git clone https://github.com/UIUC-PPL/charm4py + git clone -b projections_support https://github.com/UIUC-PPL/charm4py export PYTHONPATH="$PWD/charm4py" mkdir -p charm4py/charm_src/charm/bin && cp bin/charmrun charm4py/charm_src/charm/bin From e5a967d138a772da7ab96a98697c4959b545ed9f Mon Sep 17 00:00:00 2001 From: Zane Fink Date: Thu, 14 Oct 2021 10:52:48 -0500 Subject: [PATCH 17/18] add user event tracing --- src/ck-core/charm.h | 3 +++ src/ck-core/ck.C | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/ck-core/charm.h b/src/ck-core/charm.h index f5ff0455b8..0d174060ec 100644 --- a/src/ck-core/charm.h +++ b/src/ck-core/charm.h @@ -148,6 +148,9 @@ extern void CkStartQDExt_ArrayCallback(int aid, int* idx, int ndims, int epIdx, extern void CkStartQDExt_SectionCallback(int sid_pe, int sid_cnt, int rootPE, int ep); extern void registerCreateCallbackMsgExtCallback(void (*cb)(void*, int, int, int, int *, char**, int*)); extern void registerPyReductionExtCallback(int (*cb)(char**, int*, int, char**)); +extern int CkTraceRegisterUserEvent(char *EventDesc, int eventID); +extern void CkTraceBeginUserBracketEvent(int eventID); +extern void CkTraceEndUserBracketEvent(int eventID); #endif /*********************************************************/ diff --git a/src/ck-core/ck.C b/src/ck-core/ck.C index 43ffd49c7a..4275f25a68 100644 --- a/src/ck-core/ck.C +++ b/src/ck-core/ck.C @@ -2545,6 +2545,19 @@ void CkArrayExtSend_multi(int aid, int *idx, int ndims, int epIdx, int num_bufs, } } +int CkTraceRegisterUserEvent(char *EventDesc, int eventNum) +{ + return traceRegisterUserEvent(EventDesc, eventNum); +} + +void CkTraceBeginUserBracketEvent(int eventID) +{ + traceBeginUserBracketEvent(eventID); +} +void CkTraceEndUserBracketEvent(int eventID) +{ + traceEndUserBracketEvent(eventID); +} #endif //------------------- Message Watcher (record/replay) ---------------- From b0f3f8632f6b0a115ed9d019b94c68f17d46f9c8 Mon Sep 17 00:00:00 2001 From: Ritvik Rao Date: Fri, 28 Mar 2025 11:23:40 -0500 Subject: [PATCH 18/18] fix hello linking --- CMakeLists.txt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a97226a5f..eb813b05e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1006,12 +1006,13 @@ if(${TARGET} STREQUAL "charm4py") endif() add_dependencies(charm hwloc) + else() # Check that we are able to build and link an executable - add_executable(hello ${CMAKE_SOURCE_DIR}/tests/charm++/simplearrayhello/hello.C) - add_dependencies(hello ck ldb-rand memory-default threads-default conv-static - conv-core ckmain conv-machine conv-util conv-partition conv-ldb ckqt - moduleNDMeshStreamer modulecompletion tmgr) + add_executable(ckhello ${CMAKE_SOURCE_DIR}/tests/charm++/simplearrayhello/hello.C) + add_dependencies(ckhello ck ldb-none memory-default threads-default conv-static + converse ckmain ckqt + moduleNDMeshStreamer modulecompletion) endif() # Create conv-mach-opt.sh