charm.git
3 years agoMake Boost uFcontext threads the default on all ppc64le builds 93/4193/2
Sam White [Wed, 16 May 2018 16:08:00 +0000 (11:08 -0500)]
Make Boost uFcontext threads the default on all ppc64le builds

Change-Id: I08a977cedfa27d1ccfe8c8dc97052f945a2a9182

3 years agoFeature #1866: update Boost context ULT assembly routines to v1.67.0 44/4044/3
Sam White [Sun, 22 Apr 2018 15:28:20 +0000 (10:28 -0500)]
Feature #1866: update Boost context ULT assembly routines to v1.67.0

Change-Id: I4b7e7d409ea045ad7f389ba60e399e138dee066a

3 years agoAutomate process of building libcharm.so for charmpy 40/4040/8
Juan Galvez [Sat, 21 Apr 2018 15:08:33 +0000 (10:08 -0500)]
Automate process of building libcharm.so for charmpy

Changes in charmc by Evan Ramos.

Added `libcharm` and `charmpy` rules to Makefile to generate
libcharm.so automatically.

Added checks in configure.ac to find the correct compiler/linker
flags to build the library.

For Charmpy, the build line to generate the library is like this:
./build charmpy netlrts-linux-x86_64

If the target is `charmpy`, the build script will automatically add
--build-shared (on non-Windows environment) and --enable-charmpy

Change-Id: I62894f3a18fa54625170f21df07837df6efaccfe

3 years agoRemove unnecessary spaces in xlat-i generated template and casting code 81/4181/2
Ronak Buch [Tue, 15 May 2018 21:06:38 +0000 (16:06 -0500)]
Remove unnecessary spaces in xlat-i generated template and casting code

Change-Id: I140701d06cfa9aca61dce32e93816effee1960ce

3 years agoDocumentation: Fix BeautifulSoup "no parser was explicitly specified" warning 92/4192/1
Ronak Buch [Wed, 16 May 2018 07:37:32 +0000 (02:37 -0500)]
Documentation: Fix BeautifulSoup "no parser was explicitly specified" warning

Change-Id: I4769d10fd9f990c41fadf087441dbb323d022d83

3 years agoDocumentation: Escape underscores in entry.tex to fix build failures 91/4191/2
Ronak Buch [Wed, 16 May 2018 04:02:20 +0000 (23:02 -0500)]
Documentation: Escape underscores in entry.tex to fix build failures

Change-Id: Ib65586fe3f9ab201e4e6c741cf9cc91028de209d

3 years agoFix comm thread tracing broken in 1d8d260ab 79/4179/2
Ronak Buch [Tue, 15 May 2018 20:59:03 +0000 (15:59 -0500)]
Fix comm thread tracing broken in 1d8d260ab

Change-Id: I8f22d6972de691f4399e8e6374f50e33bbb66de3

3 years agoFix RandCentLB to distribute chares uniformly 59/4059/3
Ronak Buch [Wed, 25 Apr 2018 19:54:14 +0000 (14:54 -0500)]
Fix RandCentLB to distribute chares uniformly

Change-Id: If943d5fbde51a53c3053e99d1aacdb411cd30e0c

3 years agoRevert inclusion of stdatomic.h in converse.h 84/4184/2
Evan Ramos [Tue, 15 May 2018 22:12:25 +0000 (17:12 -0500)]
Revert inclusion of stdatomic.h in converse.h

Change-Id: I030f603fef4329f3f504e86f65e76fa956c646ac

3 years agoBug #1910: Quote machine, chare, and entry chare names in sts file, increment PROJECT... 76/4176/1
Ronak Buch [Tue, 15 May 2018 19:18:13 +0000 (14:18 -0500)]
Bug #1910: Quote machine, chare, and entry chare names in sts file, increment PROJECTION_VERSION to 10.0

Change-Id: Ib114d3ebe343136058fad1fcd83c3f7a6b8ff338

3 years agoTracing: remove AMPI function usage tracing 73/4173/3
Matthias Diener [Mon, 14 May 2018 21:01:40 +0000 (16:01 -0500)]
Tracing: remove AMPI function usage tracing

Followup from https://charm.cs.illinois.edu/gerrit/4094

This hasn't worked for some time and the functionality has been subsumed in the user events tracing.

Change-Id: I79c3b8d40f6616c8b7850d09c4c9c90a74c1281a

3 years agoFeature #1420: New lockless queue implementation and integration 02/1302/58
Justin Miron [Thu, 5 May 2016 19:08:44 +0000 (14:08 -0500)]
Feature #1420: New lockless queue implementation and integration

Disabled by default. Pass `--enable-lockless-queue` to the build script
to use this feature.

Co-authored-by: Evan Ramos <evan@hpccharm.com>
Change-Id: Icb531ca4f2e8d972b7102b29c055be8ab22836fe

3 years agoCleanup #1906: add ppc64le build target aliases for mpi/netlrts/multicore 69/4169/2
Sam White [Sat, 12 May 2018 15:17:45 +0000 (10:17 -0500)]
Cleanup #1906: add ppc64le build target aliases for mpi/netlrts/multicore

Change-Id: Ieeafa549ba320b064b2b49b94a3f5cfd1c687f74

3 years agoCleanup pcqueue.h: use atomics only in SMP mode and remove unused code 59/4159/2
Sam White [Thu, 10 May 2018 14:26:30 +0000 (09:26 -0500)]
Cleanup pcqueue.h: use atomics only in SMP mode and remove unused code

Change-Id: Ibe5f3f55028bdc1384ea3c92fb578fbd25fb52a5

3 years agotracing: remove creation of .topo files 71/4171/2
Matthias Diener [Mon, 14 May 2018 18:02:43 +0000 (13:02 -0500)]
tracing: remove creation of .topo files

Followup from Bug #1886.

Change-Id: I696af81877c9e57aaa92ecd419f07c4ad2ad4749

3 years agoFeature #1863: support PUP'ing templated abstract base classes 85/3985/3
Sam White [Fri, 13 Apr 2018 18:26:50 +0000 (13:26 -0500)]
Feature #1863: support PUP'ing templated abstract base classes

Change-Id: Ia8a00d4569f13db95f9ffbf6a88b6d91ed25f2c4

3 years agoFeature #1864: add Charm++ type trait utilities in charm++_type_traits.h 88/3988/6
Sam White [Fri, 13 Apr 2018 22:54:03 +0000 (17:54 -0500)]
Feature #1864: add Charm++ type trait utilities in charm++_type_traits.h

Co-authored-by: Evan Ramos <evan@hpccharm.com>
Change-Id: I7775417f48aeba95d8112e1b6f76c50fed79a064

3 years agoAdded support for CkArrayMap in charmpy 01/3701/4
Juan Galvez [Thu, 8 Feb 2018 18:32:45 +0000 (12:32 -0600)]
Added support for CkArrayMap in charmpy

Change-Id: I05ee36b5ee54bbed887c08bdd10205bceb94ed16

3 years agoDocumentation #789: Mention that ++verbose can be used to diagnose Charmrun issues 63/4163/1
Evan Ramos [Thu, 10 May 2018 22:38:43 +0000 (17:38 -0500)]
Documentation #789: Mention that ++verbose can be used to diagnose Charmrun issues

Change-Id: If8477126e082536c32e572cbf560ce242b11d4e2

3 years agoRemove excessive PAMI communication layer tracing 60/4160/1
Jim Phillips [Thu, 10 May 2018 17:55:46 +0000 (12:55 -0500)]
Remove excessive PAMI communication layer tracing

Frequent events from the PAMI communication layer greatly
expand tracing output and obscure the application events.
Changed CMK_TRACE_ENABLED to CMK_TRACE_PAMI_ENABLED so that
detailed communication layer tracing can still be enabled.

Change-Id: I59b3297d947c77e3fc62177e72de61febc39b368

3 years agoBug #1902: remove stray comma in ckreduction.h 58/4158/2
Sam White [Thu, 10 May 2018 14:25:10 +0000 (09:25 -0500)]
Bug #1902: remove stray comma in ckreduction.h

Change-Id: Ibea0e914ca8ca4c3e4ae4365f980c273af7db03e

3 years agoBug #1881 mpi-linux-x86_64: use ifort if mpicxx wraps icpc 51/4151/4
Sam White [Wed, 9 May 2018 15:19:32 +0000 (08:19 -0700)]
Bug #1881 mpi-linux-x86_64: use ifort if mpicxx wraps icpc

Change-Id: I21d1dafd1826b15e81757b4021c3f1f1c9ead4eb

3 years agompi-darwin: enable building on gcc 50/4150/4
Sam White [Wed, 9 May 2018 14:38:24 +0000 (09:38 -0500)]
mpi-darwin: enable building on gcc

Change-Id: Ic544ae733788c1534f2ccae04aa07be5f43a2baf

3 years agoDocumentation #1883: update AMPI manual section on global variable privatization 57/4157/3
Sam White [Wed, 9 May 2018 20:29:34 +0000 (15:29 -0500)]
Documentation #1883: update AMPI manual section on global variable privatization

Change-Id: Ifb378c769cced3e087579dc227dd3c7f5a91590d

3 years agompi-linux-x86_64-syncft: fix build errors from C -> C++ conversion 55/4155/1
Evan Ramos [Wed, 9 May 2018 19:22:29 +0000 (14:22 -0500)]
mpi-linux-x86_64-syncft: fix build errors from C -> C++ conversion

Change-Id: Ife50ca37a7831e2442ff908350642069145ac2cc

3 years agoMake charmrun use jsrun on Summit 76/4076/10
Nitin Bhat [Fri, 27 Apr 2018 16:36:31 +0000 (12:36 -0400)]
Make charmrun use jsrun on Summit

Change-Id: I0a19b2e6305f79621675a50de2baf0b48e47aa63

3 years agoppc64le: Disable hardcoded default cpu affinity for ppc64le builds 75/4075/7
Nitin Bhat [Fri, 27 Apr 2018 19:46:41 +0000 (15:46 -0400)]
ppc64le: Disable hardcoded default cpu affinity for ppc64le builds

Change-Id: I4af0d32e5f73ebe76ccb95df81ff1e7e878bc46a

3 years agohwloc #1895: Re-add component symbols to rename.h 45/4145/2
Evan Ramos [Tue, 8 May 2018 15:46:45 +0000 (10:46 -0500)]
hwloc #1895: Re-add component symbols to rename.h

This resolves symbol collisions between our hwloc and OpenMPI's copy,
which can occur both at binary link time and at runtime due to hwloc's
dynamic symbol lookup.

These definitions were originally removed in hwloc git commit
93abf09fee121c55b99f578d62e3ea21decdfbed, aka SVN r5097.

Change-Id: I606af33021a4f7bb1b741dcb5acc92f022a957d0

3 years agohwloc: Updates to update-hwloc.sh 44/4144/2
Evan Ramos [Tue, 8 May 2018 15:55:14 +0000 (10:55 -0500)]
hwloc: Updates to update-hwloc.sh

Change-Id: I4cde7276d78e8ca43b035d3af4a49644f10bdd95

3 years agoCleanup: print reducer & callback type names as strings rather than ints 24/4124/4
Sam White [Thu, 3 May 2018 20:19:09 +0000 (15:19 -0500)]
Cleanup: print reducer & callback type names as strings rather than ints

Provides a more informative error message to users when overlapping
reductions collide. Only enabled with CMK_ERROR_CHECKING.

Change-Id: I0d841840cdcf652026976c8f4b95f2913a602221

3 years agoCleanup: Remove ibverbs files from netlrts-linux-arm* 48/4148/1
Evan Ramos [Tue, 8 May 2018 21:18:41 +0000 (16:18 -0500)]
Cleanup: Remove ibverbs files from netlrts-linux-arm*

Change-Id: I7e888e039fbead2267d33a5d9b1881b06272f224

3 years agoFix memory-os-wrapper after C -> C++ conversion 41/4141/3
Sam White [Mon, 7 May 2018 15:02:38 +0000 (10:02 -0500)]
Fix memory-os-wrapper after C -> C++ conversion

ampicc -memory os-isomalloc was failing to link since memory.C was
renamed as a C++ file.

Change-Id: Idc452c21a09f0d8ded4aef02f1135cf9ae2bce44

3 years agobigsim: fix build errors from C -> C++ conversion, for real this time 33/4133/2
Evan Ramos [Mon, 7 May 2018 17:56:11 +0000 (12:56 -0500)]
bigsim: fix build errors from C -> C++ conversion, for real this time

Change-Id: I89e997076d84bfecb0ddd68226ff673039a76669

3 years agoAMPI cleanup: store Window and Comm names as std::string 99/3799/19
Sam White [Fri, 2 Mar 2018 20:09:21 +0000 (14:09 -0600)]
AMPI cleanup: store Window and Comm names as std::string

Change-Id: Ib65b6a51141d117b1ad88411fd0ac73ae417bcb8

3 years agoAMPI: fix MPI_(I)probe handling of MPI_PROC_NULL 84/4084/2
Sam White [Mon, 30 Apr 2018 17:32:10 +0000 (12:32 -0500)]
AMPI: fix MPI_(I)probe handling of MPI_PROC_NULL

Change-Id: Icce794d5d33a37e604a0fbc5a00fc0cb31158736

3 years agoMPI layer: use MPI-3 matching Iprobe and (I)recv when available 85/2785/14
Sam White [Fri, 14 Jul 2017 15:53:50 +0000 (10:53 -0500)]
MPI layer: use MPI-3 matching Iprobe and (I)recv when available

MPI_Mprobe and MPI_Mrecv are potential performance improvements over
their non-matched equivalents. However, not all MPI libraries that claim
to support the MPI 3.0+ standard implement this interface correctly
(i.e. MVAPICH2/2.3 and Intel MPI 2018), so we add an MPI_HAS_MPROBE
macro to avoid using Mprobe when using MVAPICH2 or IMPI.

Users can override our MPI_HAS_PROBE definition when building Charm++
by specifying -DMPI_HAS_MPROBE={0,1}.

Change-Id: I333b0ec0e22346b52f2898210bae57f13e42cb1a

3 years agoFeature #541: Enforcing memory ordering consistency for SMP messaging 77/3877/18
Nitin Bhat [Mon, 19 Mar 2018 15:36:35 +0000 (10:36 -0500)]
Feature #541: Enforcing memory ordering consistency for SMP messaging

Co-authored-by: Seonmyeong Bak <sbak5@illinois.edu>
Change-Id: If4805e8f8c8354713d9fa0f17ed723f32243003c

3 years agoBug #1896: unbreak builds with Cray CCE 34/4134/1
Sam White [Sat, 5 May 2018 17:18:20 +0000 (12:18 -0500)]
Bug #1896: unbreak builds with Cray CCE

Change-Id: I00b19383c9f47035fd68297d49db2ebe6df6bb23

3 years agoExpose long_long reducer types in CkReductionTypesExt 28/4128/2
Juan Galvez [Fri, 4 May 2018 16:32:53 +0000 (11:32 -0500)]
Expose long_long reducer types in CkReductionTypesExt

This is charmpy-related.

Windows needs it for (u)int64 types (long is 4 bytes, long long is
8 bytes).

Change-Id: I3c1fea3cf7939290b4d0c5f6e1de82af04f21166

3 years agoBug #536: Convert PCQueue length to a C++11 atomic and use its increments as fences 18/418/22
Phil Miller [Wed, 29 Oct 2014 21:32:03 +0000 (16:32 -0500)]
Bug #536: Convert PCQueue length to a C++11 atomic and use its increments as fences

Provide proper synchronization of the Q->len variable itself by making accesses
atomic to the compiler's understanding, to eliminate races between atomic
increment/decrement operations and previously unsynchronized reads. By doing
the accesses with memory_order_{release,acquire} as appropriate, they can also
take the place of the nearby fence operations that were previously
insufficient.

Fixes ThreadSanitizer data race reports of the following forms:

1. Atomic increment of Q->len by producers, and test Q->len == 0 by consumer
==================
WARNING: ThreadSanitizer: data race (pid=30045)
  Atomic write of size 4 at 0x7d220001fb50 by thread T1 (mutexes: write M16):
    #0 __tsan_atomic32_fetch_add ??:0 (libtsan.so.0+0x00000000c925)
    #1 PCQueuePush tmp/pcqueue.h:314 (exe+0x000000225468)
    #2 CmiInterFreeSendFn tmp/machine-common-core.c:616 (exe+0x00000022e10b)
    #3 CmiFreeSendFn tmp/machine-common-core.c:598 (exe+0x00000022e25b)

  Previous read of size 4 at 0x7d220001fb50 by main thread:
    #0 PCQueuePop tmp/pcqueue.h:222 (exe+0x000000225c9e)
    #1 CsdNextMessage tmp/convcore.c:1728 (exe+0x00000023600a)
    #2 CsdSchedulePoll tmp/convcore.c:1913 (exe+0x00000023688d)

  Location is heap block of size 288 at 0x7d220001fa40 allocated by main thread:
    #0 malloc ??:0 (libtsan.so.0+0x00000001cb22)
    #1 PCQueueCreate tmp/pcqueue.h:167 (exe+0x000000224751)
    #2 CmiStartThreads tmp/machine-smp.c:482 (exe+0x000000231f1a)
    #3 main tmp/main.C:18 (exe+0x000000101234)

  Mutex M16 created at:
    #0 pthread_mutex_init ??:0 (libtsan.so.0+0x00000001f0f8)
    #1 CmiCreateLock tmp/machine-smp.c:320 (exe+0x000000224526)
    #2 PCQueueCreate tmp/pcqueue.h:173 (exe+0x000000224799)
    #3 CmiStartThreads tmp/machine-smp.c:482 (exe+0x000000231f1a)
    #4 main tmp/main.C:18 (exe+0x000000101234)

  Thread T1 (tid=30046, running) created by main thread at:
    #0 pthread_create ??:0 (libtsan.so.0+0x00000001eccb)
    #1 CmiStartThreads tmp/machine-smp.c:506 (exe+0x000000231f7e)
    #2 main tmp/main.C:18 (exe+0x000000101234)

SUMMARY: ThreadSanitizer: data race ??:0 __tsan_atomic32_fetch_add
==================

2. Producer writes message pointer into a buffer entry (circ1->data[push] = data),
and consumer reads that entry (data = circ->data[pull]) with no working
synchronization between them.

==================
WARNING: ThreadSanitizer: data race (pid=30045)
  Read of size 8 at 0x7d540001cd10 by main thread:
    #0 PCQueuePop tmp/pcqueue.h:229 (exe+0x000000225cf0)
    #1 CsdNextMessage tmp/convcore.c:1728 (exe+0x00000023600a)
    #2 CsdSchedulePoll tmp/convcore.c:1913 (exe+0x00000023688d)

  Previous write of size 8 at 0x7d540001cd10 by thread T1 (mutexes: write M16):
    #0 PCQueuePush tmp/pcqueue.h:313 (exe+0x000000225445)
    #1 CmiInterFreeSendFn tmp/machine-common-core.c:616 (exe+0x00000022e10b)
    #2 CmiFreeSendFn tmp/machine-common-core.c:598 (exe+0x00000022e25b)

  Location is heap block of size 2320 at 0x7d540001cc00 allocated by main thread:
    #0 calloc ??:0 (libtsan.so.0+0x00000001cca5)
    #1 PCQueueCreate tmp/pcqueue.h:162 (exe+0x000000224744)
    #2 CmiStartThreads tmp/machine-smp.c:482 (exe+0x000000231f1a)
    #3 main tmp/main.C:18 (exe+0x000000101234)

  Mutex M16 created at:
    #0 pthread_mutex_init ??:0 (libtsan.so.0+0x00000001f0f8)
    #1 CmiCreateLock tmp/machine-smp.c:320 (exe+0x000000224526)
    #2 PCQueueCreate tmp/pcqueue.h:173 (exe+0x000000224799)
    #3 CmiStartThreads tmp/machine-smp.c:482 (exe+0x000000231f1a)
    #4 main tmp/main.C:18 (exe+0x000000101234)

  Thread T1 (tid=30046, running) created by main thread at:
    #0 pthread_create ??:0 (libtsan.so.0+0x00000001eccb)
    #1 CmiStartThreads tmp/machine-smp.c:506 (exe+0x000000231f7e)
    #2 main tmp/main.C:18 (exe+0x000000101234)

SUMMARY: ThreadSanitizer: data race tmp/pcqueue.h:229 PCQueuePop
==================

Co-authored-by: Evan Ramos <evan@hpccharm.com>
Change-Id: I64a48fbf7154735ed150ea7e589c58ad802ec415

3 years agopami/pamilrts ppc64le builds: fix build errors from C -> C++ conversion 31/4131/2
Nitin Bhat [Fri, 4 May 2018 19:55:09 +0000 (15:55 -0400)]
pami/pamilrts ppc64le builds: fix build errors from C -> C++ conversion

Tested pami, pamilrts and verbs for ppc64le archs using both smp and nonsmp
modes.

Change-Id: If2978b15bee67d2c020d534ba753dda0e5dac67f

3 years agoverbs-pxshm: fix build errors from C -> C++ conversion 32/4132/1
Evan Ramos [Fri, 4 May 2018 20:40:16 +0000 (15:40 -0500)]
verbs-pxshm: fix build errors from C -> C++ conversion

Change-Id: Id078008e6d8a6622a2c8d4483dc4a8411b93b139

3 years agopami{lrts}-bluegeneq-async-smp: fix build errors from C -> C++ conversion 16/4116/6
Sam White [Thu, 3 May 2018 17:19:12 +0000 (12:19 -0500)]
pami{lrts}-bluegeneq-async-smp: fix build errors from C -> C++ conversion

Change-Id: Ide880dc68e4023d44422591faf270b87a7486d38

3 years agogni persistent: fix build errors from C -> C++ conversion 26/4126/1
Sam White [Fri, 4 May 2018 04:20:43 +0000 (21:20 -0700)]
gni persistent: fix build errors from C -> C++ conversion

Change-Id: I028f634fa08a706242dcd66a19e4a555e74fa0b2

3 years agogni & ofi: fix linker errors from C -> C++ conversion 25/4125/1
Sam White [Fri, 4 May 2018 03:57:56 +0000 (20:57 -0700)]
gni & ofi: fix linker errors from C -> C++ conversion

Change-Id: I7decd2af4455a61874ef8f27de3261a66970a363

3 years agoomp-smp: fix build errors from C -> C++ conversion 23/4123/1
Evan Ramos [Thu, 3 May 2018 20:16:46 +0000 (15:16 -0500)]
omp-smp: fix build errors from C -> C++ conversion

Change-Id: I32b0704286cbd1c7aa67c21c16ec999f997b6191

3 years agobigsim: fix build errors from C -> C++ conversion 22/4122/1
Evan Ramos [Thu, 3 May 2018 19:40:51 +0000 (14:40 -0500)]
bigsim: fix build errors from C -> C++ conversion

Change-Id: Ic93e6f333d7b121150f454d24f46b6f9a3721709

3 years agompi-win-x86_64: fix build errors from C -> C++ conversion 20/4120/1
Evan Ramos [Thu, 3 May 2018 19:19:18 +0000 (14:19 -0500)]
mpi-win-x86_64: fix build errors from C -> C++ conversion

Change-Id: Ifbe095d810dc6f0c2bac2e15124a242ee895429f

3 years agompi-linux-x86_64-syncft: fix build errors from C -> C++ conversion 19/4119/1
Evan Ramos [Thu, 3 May 2018 19:14:32 +0000 (14:14 -0500)]
mpi-linux-x86_64-syncft: fix build errors from C -> C++ conversion

Change-Id: I7a1851a5b2d49fc15eb630b5de602a9942d3be5a

3 years agoverbs: fix build errors from C -> C++ conversion 18/4118/2
Evan Ramos [Thu, 3 May 2018 18:47:08 +0000 (13:47 -0500)]
verbs: fix build errors from C -> C++ conversion

Change-Id: Iaee0b6bb25c727c1b535fde7896e2dfdea5d113d

3 years ago32-bit linux: fix build errors from C -> C++ conversion 17/4117/2
Sam White [Thu, 3 May 2018 18:11:40 +0000 (13:11 -0500)]
32-bit linux: fix build errors from C -> C++ conversion

Change-Id: Ieb7e52cc147a58f08e90ac3e5231a51f97e5c1cb

3 years agoOFI: fix build errors from C -> C++ conversion 12/4112/2
Samuel White [Thu, 3 May 2018 15:35:59 +0000 (10:35 -0500)]
OFI: fix build errors from C -> C++ conversion

Change-Id: I72ec738d96b1ddc2bc9bc40d58d5795a7bb9d987

3 years agopami: fix build errors from C -> C++ conversion 15/4115/1
Sam White [Thu, 3 May 2018 16:46:19 +0000 (11:46 -0500)]
pami: fix build errors from C -> C++ conversion

Change-Id: I9b8dac3e0ff16680445839e039ccb22a109beac0

3 years agoFix compiler warnings from global-elfgot.C on BGQ 14/4114/1
Sam White [Thu, 3 May 2018 16:34:54 +0000 (11:34 -0500)]
Fix compiler warnings from global-elfgot.C on BGQ

Change-Id: I9bcaf9cd83443823f9e47081c78e359ad32b0a19

3 years agopamilrts: fix build errors from C -> C++ conversion 13/4113/1
Sam White [Thu, 3 May 2018 16:31:17 +0000 (11:31 -0500)]
pamilrts: fix build errors from C -> C++ conversion

Change-Id: Ia8b0ee868f1139f741d9da398caa362ffd7e04d5

3 years agoDocumentation: more precise [nokeep] entry method semantics 02/4102/4
Sam White [Wed, 2 May 2018 20:18:54 +0000 (15:18 -0500)]
Documentation: more precise [nokeep] entry method semantics

For broadcasts to [nokeep] entry methods, it is unsafe for users to
modify the contents of the message, since the runtime reuses the same
message for all entry method invocations on each PE.

Change-Id: Idd21b8fb518d04a072ec3715167b4a715819be06

3 years agoRename all machine.c and memory.c to machine.C and memory.C 30/3630/19
Evan Ramos [Mon, 5 Feb 2018 18:44:04 +0000 (12:44 -0600)]
Rename all machine.c and memory.c to machine.C and memory.C

This redefines these files as C++.

Change-Id: I63ac7dc495569d193b1690ceb02e28aa09df2bf0

3 years agoOptimize layout of EntryInfo, ChareInfo, Readonly, etc objects 89/4089/5
Sam White [Tue, 1 May 2018 03:20:48 +0000 (22:20 -0500)]
Optimize layout of EntryInfo, ChareInfo, Readonly, etc objects

Rearrange member variables of these classes so that the most
performance-critical ones are first, rather than having the debug names
first. For example, EntryInfo::call is what we use to call entry methods
in ck.C's _invokeEntry(), but EntryInfo::name is only used for debugging.

Change-Id: Ied07d481502feb073b1d4f355994759ac92f8fae

3 years agoAMPI: replace non-standard MPI_MAX_PRIMITIVE_TYPE with equivalent DDT value 85/4085/2
Sam White [Mon, 30 Apr 2018 17:36:07 +0000 (12:36 -0500)]
AMPI: replace non-standard MPI_MAX_PRIMITIVE_TYPE with equivalent DDT value

Change-Id: I62f490dbc62e8425c03b5b0ab7e68611f21a3a8d

3 years agocharmc: fix -swapglobals checks 63/4063/12
Evan Ramos [Thu, 26 Apr 2018 18:09:23 +0000 (13:09 -0500)]
charmc: fix -swapglobals checks

Co-authored-by: Sam White <white67@illinois.edu>
Change-Id: I3b82e1167c51b03b9e810d97f70194a67f067702

3 years agoFix uses of CmiMemorySMPSeparation_t in pxshm and xpmem objects 96/4096/2
Evan Ramos [Tue, 1 May 2018 22:01:16 +0000 (17:01 -0500)]
Fix uses of CmiMemorySMPSeparation_t in pxshm and xpmem objects

Change-Id: I25fa1cf841d4203e42b56c7d5853a6a868af37a0

3 years agoREADME: update list of current and past authors 54/4054/5
Sam White [Tue, 24 Apr 2018 21:26:42 +0000 (16:26 -0500)]
README: update list of current and past authors

Change-Id: I48d0d607636c66258402619dc4ff45737f371884

3 years agocpuaffinity: limit default output about comm threads to physical node 0 64/4064/7
Sam White [Thu, 26 Apr 2018 05:56:05 +0000 (00:56 -0500)]
cpuaffinity: limit default output about comm threads to physical node 0

Change-Id: Ieb9abd62f15bc21e4330ee6293d5f4249a7dff0b

3 years agoBug #1858: #define CMK_NOT_USE_TLS_THREAD 1 under mpi-linux-x86_64-smp 88/4088/3
Evan Ramos [Mon, 30 Apr 2018 21:47:32 +0000 (16:47 -0500)]
Bug #1858: #define CMK_NOT_USE_TLS_THREAD 1 under mpi-linux-x86_64-smp

Change-Id: If99ae566cb24bb8eb1c242b5942bf890b8db6a95

3 years agoBug #1892: Ensure cygpath in machine.d rule is always followed by '/' 93/4093/2
Evan Ramos [Tue, 1 May 2018 19:16:57 +0000 (14:16 -0500)]
Bug #1892: Ensure cygpath in machine.d rule is always followed by '/'

Change-Id: If327cd7be973fc19d9c787caed43c7d1075d66ab

3 years agoBigSim: add bgtest target to examples/ampi/pingpong 90/4090/2
Sam White [Tue, 1 May 2018 13:32:59 +0000 (08:32 -0500)]
BigSim: add bgtest target to examples/ampi/pingpong

Change-Id: I4dd9943ce117f95f39462f9e5e64af460455f533

3 years agoBug #1891: Fix undeclared variable error on crayxe platforms 92/4092/1
Nitin Bhat [Tue, 1 May 2018 18:50:20 +0000 (11:50 -0700)]
Bug #1891: Fix undeclared variable error on crayxe platforms

Change-Id: If71ddd146115630b10f262e4b5b51546f60b964a

3 years agoAMPI: unbreak error checking in MPI_Info routines 82/4082/5
Sam White [Mon, 30 Apr 2018 15:38:06 +0000 (10:38 -0500)]
AMPI: unbreak error checking in MPI_Info routines

AMPI's MPI_Info routines are defined in ampiMisc.C, so when building
with AMPI error checking enabled we were getting linker errors about
ampiErrhandler() not being defined in those routines since it was inline.

Change-Id: I41eab9907043be8e606442ad96e27de7da416c57

3 years agoAMPI: run examples/ampi/pingpong as a part of make test 81/4081/3
Sam White [Mon, 30 Apr 2018 15:17:06 +0000 (10:17 -0500)]
AMPI: run examples/ampi/pingpong as a part of make test

Change-Id: I5103f8bce36e3b904bb5bce0049df576fc2a026f

3 years agoBug #1858: Avoid inter-PE contention of _ctgTLS 19/4019/10
Evan Ramos [Wed, 18 Apr 2018 00:25:32 +0000 (19:25 -0500)]
Bug #1858: Avoid inter-PE contention of _ctgTLS

Change-Id: Ia2dd09ff568bd1081965e9bbf521b1fe7e19a56a

3 years agoTCharm: fix swapglobals runtime support inside TCharmAPIRoutine 61/4061/7
Sam White [Wed, 25 Apr 2018 21:43:50 +0000 (16:43 -0500)]
TCharm: fix swapglobals runtime support inside TCharmAPIRoutine

Change-Id: I4e96b1a043631bf98d9f0485125ac2957f36e83e

3 years agocharmxi #1699: Don't print default arguments for explicit template instantiations 77/4077/1
Evan Ramos [Fri, 27 Apr 2018 19:02:58 +0000 (14:02 -0500)]
charmxi #1699: Don't print default arguments for explicit template instantiations

Change-Id: I77895eb68504b4e3e3ce6e01f7550896d9ec8fa6

3 years agoBug #1867: Disable partitions test on pamilrts-bluegeneq 05/4005/4
Nitin Bhat [Mon, 16 Apr 2018 20:18:15 +0000 (20:18 +0000)]
Bug #1867: Disable partitions test on pamilrts-bluegeneq

Change-Id: Id0627963cdb205d008b4afa6e650a82ee2554ac6

3 years agoCleanup #1890: avoid definition of VERSION in conv-autoconfig.h 70/4070/4
Sam White [Fri, 27 Apr 2018 00:08:08 +0000 (19:08 -0500)]
Cleanup #1890: avoid definition of VERSION in conv-autoconfig.h

This avoids conflicts with applications that define their own VERSION
macro, and we already define CHARM_VERSION for the Charm++ release.

Change-Id: Ic7796582f0618869c35d6b4814cb27cabdbeca40

3 years agoBug #1871: GNI RDMA - Direct RGET/RPUT calls through the comm thread 66/4066/3
Nitin Bhat [Thu, 26 Apr 2018 16:51:51 +0000 (09:51 -0700)]
Bug #1871: GNI RDMA - Direct RGET/RPUT calls through the comm thread

With this fix, RGET/RPUT calls are performed by the comm thread on
behalf of the worker thread. Previously, this was done by the worker
threads themselves and this was sometimes causing a segmentation violation
during the GNI_GetCompleted() method as a shared completion
queue was being unsafely accessed by both the comm thread and the worker
threads.

This bug fix also resolves the gni-crayxc-smp autobuild crash seen during
the execution of get_put_pingpong.

Change-Id: I965f39164d8548b02402f21f884276b5ad5198e0

3 years agoBug #1699: Use perfect forwarding for inline and local entry methods 88/3788/14
Evan Ramos [Thu, 19 Apr 2018 23:07:28 +0000 (18:07 -0500)]
Bug #1699: Use perfect forwarding for inline and local entry methods

The code Charm++ generates to handle proxying of these methods is
templated regardless of whether any template parameters are used. This
is a requirement of the definition of a forwarding reference.

http://en.cppreference.com/w/cpp/language/reference#Forwarding_references

Co-authored-by: Eric Mikida <mikida2@illinois.edu>
Change-Id: I0f13b34c65a7d74d6f235cb5643b5fc642abc1d0

3 years agopamilrts-linux-ppc64le: Fix linking errors caused by some CMA methods 67/4067/1
Nitin Bhat [Tue, 17 Apr 2018 21:43:19 +0000 (17:43 -0400)]
pamilrts-linux-ppc64le: Fix linking errors caused by some CMA methods

These errors are caused by CmiIssueRgetUsingCMA and CmiIssueRputUsingCMA
and are solved by moving the header file "machine-rdma.h" inclusion from
machine-onesided.c to machine.c

Change-Id: Ib982ec98179d8a5704cce2b66210eeb81864910f

3 years agoFix C++ build errors in MPI machine layer 55/4055/2
Evan Ramos [Tue, 24 Apr 2018 22:49:18 +0000 (17:49 -0500)]
Fix C++ build errors in MPI machine layer

Change-Id: If3145db20c2a7a3b5cf459b4bfcafc07931b3cdc

3 years agoAMPI: run pingpong program with +p1 as well as +p2 56/4056/2
Sam White [Wed, 25 Apr 2018 05:09:33 +0000 (00:09 -0500)]
AMPI: run pingpong program with +p1 as well as +p2

Change-Id: Icdc91a051541ca9452abb5cc8c5a47c788571d0b

3 years agoTCharm: eliminate memory leak in TCharm::atExit 52/4052/5
Sam White [Tue, 24 Apr 2018 20:13:21 +0000 (15:13 -0500)]
TCharm: eliminate memory leak in TCharm::atExit

- Ordinarily a [reductiontarget] will not leak the message memory, but
  since we are calling CkExit() from this routine, it will be leaked
  unless we explicitly delete the message before calling CkExit().

Change-Id: I35568a5aefeb239c4b7d775cdc06150db16cd21b

3 years agoCleanup: separate TCharm member variable declarations from methods 48/4048/5
Sam White [Tue, 24 Apr 2018 05:06:42 +0000 (00:06 -0500)]
Cleanup: separate TCharm member variable declarations from methods

Change-Id: I6a7a31538fbd70fefad9ccb456633aa8f06a777e

3 years agoTCharm: optimize thread context switching inside TCharmAPIRoutine 47/4047/17
Sam White [Tue, 24 Apr 2018 01:44:00 +0000 (20:44 -0500)]
TCharm: optimize thread context switching inside TCharmAPIRoutine

- Only pay overhead of -swapglobals handling when -swapglobals support
  is built (non-SMP mode on ELF systems) by adding CMI_SWAPGLOBALS macro.

- Get rid of branch in CtgInstallTLS() by splitting that routine into
  two routines based on whether the caller is switching to the main
  thread or a user CthThread, to avoid a branch.

- Eliminate 'actLikeMainThread' member variable from TCharmAPIRoutine,
  since it is always true.

- Inline the body of TCharm::activateThread() into TCharmAPIRoutine's
  destructor to avoid an extra CtvAccess and a branch.

- Only pass the routine name and library name as arguments to
  TCharmAPIRoutine's constructor if needed (tracing is enabled).

Change-Id: I90cbc8a7f69099545b2d8f7aed36e80ba7800ba7

3 years agoFix compilation of ArrayIndexTemplate test with old compiler versions 51/4051/2
Evan Ramos [Tue, 24 Apr 2018 19:52:33 +0000 (14:52 -0500)]
Fix compilation of ArrayIndexTemplate test with old compiler versions

Change-Id: If21ae577b435695de7fbe757990ec3d4da30bcbd

3 years agoBug #1780: Add chare array dimension output in tracing files 52/3952/6
Ronak Buch [Tue, 3 Apr 2018 21:52:05 +0000 (16:52 -0500)]
Bug #1780: Add chare array dimension output in tracing files

Sts files now have the dimension printed after the chare name and
entries for chare arrays in projections logs have a variable number
of ID elements correseponding to their dimension. This also
increments PROJECTION_VERSION to 9.0.

Corresponds to 482d1df1e815488e14999f0f593553d4c1a19e2f in Projections.

Change-Id: Id83869cac09adb043021e4ee2620cd485790d8db

3 years agoInitialize _ampi_fallback_setup_count to -1 and check for it 26/4026/2
Evan Ramos [Wed, 18 Apr 2018 17:30:11 +0000 (12:30 -0500)]
Initialize _ampi_fallback_setup_count to -1 and check for it

This lets us know when AMPI_Setup_Switch has or has not run.

Change-Id: I3aee344ae350198351eaa30308f48dc8b7d4f2cf

3 years agoInitialize the values of isomalloc_blocklist and pushed_blocklist 46/4046/1
Evan Ramos [Tue, 24 Apr 2018 00:11:48 +0000 (19:11 -0500)]
Initialize the values of isomalloc_blocklist and pushed_blocklist

This resolves the following issue, from `valgrind --track-origins=yes`:

 Conditional jump or move depends on uninitialised value(s)
    at 0x57F460: meta_malloc(unsigned long) (memory-isomalloc.c:86)
    by 0x57FE53: malloc_reentrant (libmemory-isomalloc.C:733)
    by 0x5A1B41: new_slotset (isomalloc.c:999)
    by 0x5A3C3C: init_ranges (isomalloc.c:2036)
    by 0x5A440D: CmiIsomallocInit (isomalloc.c:2341)
    by 0x592811: ConverseCommonInit (convcore.c:3846)
    by 0x58584F: ConverseRunPE(int) (machine-common-core.c:1501)
    by 0x58558E: ConverseInit (machine-common-core.c:1432)
    by 0x441CF7: main (main.C:9)
  Uninitialised value was created by a heap allocation
    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x57F2B2: meta_init(char**) (memory-isomalloc.c:65)
    by 0x57F83B: CmiMemoryInit (libmemory-isomalloc.C:642)
    by 0x5925F1: ConverseCommonInit (convcore.c:3793)
    by 0x58584F: ConverseRunPE(int) (machine-common-core.c:1501)
    by 0x58558E: ConverseInit (machine-common-core.c:1432)
    by 0x441CF7: main (main.C:9)

Change-Id: I62432c6f44a8ffb448033331585fd02707ffc13b

3 years agoCorrect misleading warning message when isomalloc is uninitialized 45/4045/1
Evan Ramos [Tue, 24 Apr 2018 00:09:48 +0000 (19:09 -0500)]
Correct misleading warning message when isomalloc is uninitialized

Change-Id: I8ea492ee96df0dab535fa28994a6db16c7368d4e

3 years agoBug #1879: fix build script on Cray platforms 43/4043/2
Sam White [Sun, 22 Apr 2018 15:07:56 +0000 (10:07 -0500)]
Bug #1879: fix build script on Cray platforms

Change-Id: If64541fbb7f0184e11e3a4606b133eb7fb33fc33

3 years agoPUP: fix bug in std::tuple PUP routine 41/4041/2
Sam White [Sat, 21 Apr 2018 15:26:28 +0000 (11:26 -0400)]
PUP: fix bug in std::tuple PUP routine

Change-Id: Ia076418423369556237dad5269e9376d6250e10f

3 years agoSome cleanup in charmpy code path 33/4033/4
Juan Galvez [Thu, 19 Apr 2018 20:03:53 +0000 (15:03 -0500)]
Some cleanup in charmpy code path

Removed static method '__migrateEntryMethod' of ArrayElemExt which
was never used (it was remnant of experimental code from separate
branch). Equivalent functionality was added afterwards in this
commit: fcea1f61a22894f5e2bb190bfe23075c7d60528e

Change-Id: I7ca3f555858a198ca5d52f21f901330aaa77d3cb

3 years agoFixed some mem leaks in charmpy code path 32/4032/2
Juan Galvez [Thu, 19 Apr 2018 20:02:11 +0000 (15:02 -0500)]
Fixed some mem leaks in charmpy code path

Change-Id: I3233df6f725144082d8e9d82954b5de6c35c1e2d

3 years agoMove "Requires" into PUP namespace 37/4037/1
Evan Ramos [Fri, 20 Apr 2018 17:49:49 +0000 (12:49 -0500)]
Move "Requires" into PUP namespace

Change-Id: I0ebf06567a3cbe72faa30b0bb1b0cf4a9d094646

3 years agoFix some bugs in DistributedLB on how threshold load was used 51/1951/9
Harshitha [Thu, 21 Apr 2016 04:18:23 +0000 (04:18 +0000)]
Fix some bugs in DistributedLB on how threshold load was used

Change-Id: I0b7f4be63d3724af1d6b7792662ca4d8daeb3fd2

3 years agocharmxi #1692: Accept array index types with template parameters 06/4006/4
Evan Ramos [Mon, 16 Apr 2018 18:54:04 +0000 (13:54 -0500)]
charmxi #1692: Accept array index types with template parameters

Change-Id: If0e0369218ec1f0e325ab9524b562bd2be879064

3 years agocharmxi #1853: #1854: Support parameter packs / variadic templates 80/3980/9
Evan Ramos [Tue, 10 Apr 2018 17:59:20 +0000 (12:59 -0500)]
charmxi #1853: #1854: Support parameter packs / variadic templates

This also resolves certain uses of std::tuple.

Change-Id: I841be00e1d3424f7d6ca304007c5d2c3fb563fb5

3 years agocharmxi: Support attributes on explicit entry method instantiations 87/3987/4
Evan Ramos [Fri, 13 Apr 2018 22:01:25 +0000 (17:01 -0500)]
charmxi: Support attributes on explicit entry method instantiations

Change-Id: Ie583ec224348e2a451a69e444ef41e067e888982

3 years agoMakefile #1877: Move "include Makefile.machine" above rules that depend on "charmrun" 31/4031/2
Evan Ramos [Thu, 19 Apr 2018 18:10:28 +0000 (13:10 -0500)]
Makefile #1877: Move "include Makefile.machine" above rules that depend on "charmrun"

Change-Id: I474fbd945b4902c1e8cb3aef9fcc60b487aa46b4

3 years agoCleanup: eliminate more compiler warnings from BigSim 30/4030/4
Sam White [Thu, 19 Apr 2018 14:25:35 +0000 (16:25 +0200)]
Cleanup: eliminate more compiler warnings from BigSim

Change-Id: I0797ab8af94e22819327ef16c188e61c11ee7e9c

3 years agoSDAG: print function name/signature in direct call error message 29/4029/3
Sam White [Thu, 19 Apr 2018 14:18:02 +0000 (16:18 +0200)]
SDAG: print function name/signature in direct call error message

Change-Id: I39699895d0fbdcc5ed6238f2b06347d9ae71c9c5

3 years agoFix syncft build failures in jacobi3d-sdag broken by direct SDAG call 28/4028/2
Sam White [Thu, 19 Apr 2018 14:17:17 +0000 (16:17 +0200)]
Fix syncft build failures in jacobi3d-sdag broken by direct SDAG call

Change-Id: I28d219da5adc4ecd416079d295bc741afa912ffa