charm.git
2 years agoZC API: Do not block CK_BUFFER_PREREG from de-registering in deregisterMem 33/5133/3
Nitin Bhat [Fri, 26 Apr 2019 18:43:42 +0000 (13:43 -0500)]
ZC API: Do not block CK_BUFFER_PREREG from de-registering in deregisterMem

At the generic layer (ckrdma.h), CK_BUFFER_PREREG buffers should be
allowed to de-register as they are implementation dependent. For example,
for GNI and Verbs, which support CK_BUFFER_PREREG, the de-registration
is blocked at the LRTS implementation. On the other hand, layers like
OFI which do not support CK_BUFFER_PREREG should be allowed to de-register
that buffer in the LRTS method.

Change-Id: I145277dfa3196658920b2c164df53a9865cf2464

2 years agoZC API: Allow CMK_BUFFER_UNREG buffers to be de-registered 32/5132/3
Nitin Bhat [Fri, 26 Apr 2019 18:42:42 +0000 (13:42 -0500)]
ZC API: Allow CMK_BUFFER_UNREG buffers to be de-registered

Change-Id: Ia183e53d752a2c21c7534b111101ee2b4721421d

2 years agoZC Bcast API: Perform source de-registration inside the RTS 31/5131/3
Nitin Bhat [Thu, 25 Apr 2019 22:31:39 +0000 (17:31 -0500)]
ZC Bcast API: Perform source de-registration inside the RTS

Change-Id: Iaea67bc8d89932e65af7296a67e420b4b963a1d1

2 years agoZC p2p API: Perform source de-registration inside the RTS 65/5065/17
Nitin Bhat [Tue, 9 Apr 2019 15:29:03 +0000 (10:29 -0500)]
ZC p2p API: Perform source de-registration inside the RTS

Change-Id: I1b13415344b2e898016587d664e46e7c126fe1ca

2 years agoAMPI: Add A-prefix renaming macros for MPI_Type_create_{d,sub}array 67/5167/1
Evan Ramos [Mon, 6 May 2019 19:46:11 +0000 (14:46 -0500)]
AMPI: Add A-prefix renaming macros for MPI_Type_create_{d,sub}array

Change-Id: I0ac88233a5f070630b3ac960ea83c28c42fccc20

2 years agoCleanup #1872: Move performance tests to new benchmark directory 18/4218/16
Evan Ramos [Fri, 3 Aug 2018 18:33:09 +0000 (13:33 -0500)]
Cleanup #1872: Move performance tests to new benchmark directory

The following tests have been moved:

examples/ampi/alltoall
examples/ampi/onesided
examples/ampi/pingpong
examples/charm++/benchmark/googlebenchmark
examples/charm++/zerocopy/benchmarks/*
examples/charm++/zerocopy/entry_method_bcast_api/*/ping_all
examples/charm++/zerocopy/entry_method_bcast_post_api/*/ping_all
examples/charm++/zerocopy/entry_method_post_api/*/pingpong
examples/charm++/zerocopy/entry_method_api/*/pingpong
examples/charm++/zerocopy/direct_api/*/pingpong
examples/converse/pingpong
examples/converse/pingpong_multi
tests/ampi/isomalloc
tests/ampi/speed
tests/charm++/communication_overhead
tests/charm++/kNeighbor
tests/charm++/migrate
tests/charm++/pingpong
tests/charm++/streamingAllToAll
tests/charm++/taskSpawn
tests/charm++/taskSpawnRecursive
tests/charm++/xcastredn
tests/converse/commbench
tests/converse/cthtest
tests/converse/machinetest

Additionally, tests/charm++/queue has been split into benchmark and test components.

Co-authored-by: Shane Neary <shaneneary914@gmail.com>
Change-Id: Ic1121d27543d7d7cd7ca25e6ee96e48f02c58e0a

2 years agoDocumentation: update list of current developers in README and manual 62/5162/4
Sam White [Fri, 3 May 2019 20:38:01 +0000 (15:38 -0500)]
Documentation: update list of current developers in README and manual

Change-Id: I03d8e08354ef9ac4c799f176498b3c5cf70b29c5

2 years agoFix building AMPI+CUDA 61/5161/1
Evan Ramos [Fri, 3 May 2019 17:50:44 +0000 (12:50 -0500)]
Fix building AMPI+CUDA

Broken since renaming convcore.c to .C in commit
b3b8395f34626549b6b7a9bbe59bab2746a09730.

Change-Id: If3a5f58933a2d5ca84d33f12fae1a4a12234f4d2

2 years agoAMPI: MPI_Type_create_darray, MPI_Type_create_subarray implementations 56/5156/8
Matthias Diener [Thu, 2 May 2019 18:34:45 +0000 (13:34 -0500)]
AMPI: MPI_Type_create_darray, MPI_Type_create_subarray implementations

Copied from mpich 3.2.1 with small modifications

Change-Id: I994ee7c6f6db66fb0f6031634f01997c5c167428

2 years agoTest more LB strategies 58/5158/2
Sam White [Thu, 2 May 2019 21:05:12 +0000 (16:05 -0500)]
Test more LB strategies

Change-Id: Id9fef92ebf0b7b691d320a0126bcb27c5a6ffe8e

2 years agoDistributedLB: avoid leaking memory from tuple reductions 57/5157/2
Sam White [Thu, 2 May 2019 20:58:58 +0000 (15:58 -0500)]
DistributedLB: avoid leaking memory from tuple reductions

Change-Id: I42c0002b1c7ae24962b0989ad8e06c2e9789e81e

2 years agoFix absent return types in comm thread tracing 53/5153/2
Evan Ramos [Wed, 1 May 2019 18:38:21 +0000 (13:38 -0500)]
Fix absent return types in comm thread tracing

Change-Id: I21262e843f0350e68f073c41ceea171a747b5251

2 years agoAMPI: copy nm_globals.sh to bin dir 54/5154/1
Matthias Diener [Wed, 1 May 2019 18:57:26 +0000 (13:57 -0500)]
AMPI: copy nm_globals.sh to bin dir

Change-Id: I7a71b770022d87748aa547206a73e39ee5563aad

2 years agoImprove const correctness of PE, node, and LDObjKey arrays 29/5129/2
Evan Ramos [Fri, 26 Apr 2019 18:55:16 +0000 (13:55 -0500)]
Improve const correctness of PE, node, and LDObjKey arrays

Change-Id: Iedb8e9ceb777caa052319948fb235d6ab4b6b6c9

2 years agoFix C++ transition issues in tracing 50/5150/1
Evan Ramos [Wed, 1 May 2019 14:36:36 +0000 (09:36 -0500)]
Fix C++ transition issues in tracing

Change-Id: I14ad7755d2d3e680fb9581f0d2d763256a8ad533

2 years agoFeature #1987: Take advantage of streamable reductions inside CkMulticast 28/5128/10
raghavendrak [Fri, 26 Apr 2019 18:31:54 +0000 (13:31 -0500)]
Feature #1987: Take advantage of streamable reductions inside CkMulticast

Change-Id: Ie60ea5ebd28d67177071c1cda222ad62701d6d69

2 years agoFix Kokkos interoperability manual 47/5147/2
Jaemin Choi [Tue, 30 Apr 2019 04:09:51 +0000 (00:09 -0400)]
Fix Kokkos interoperability manual

Change-Id: Ia8dbb26fc298a3cc774b4aa71b21fa2e337b62c7

2 years agoCharmrun: Fix combination of ++scalable-start and ++batch 44/5144/5
Evan Ramos [Mon, 29 Apr 2019 16:23:19 +0000 (11:23 -0500)]
Charmrun: Fix combination of ++scalable-start and ++batch

Change-Id: I25997dc953277affa551a48d6440900e5bc31a48

2 years agoCharmrun: Implement ++no-* for flag-type parameters 45/5145/4
Evan Ramos [Mon, 29 Apr 2019 18:03:51 +0000 (13:03 -0500)]
Charmrun: Implement ++no-* for flag-type parameters

For example, ++no-scalable-start.

Change-Id: Iccc1374d8fc88ff7addbb0af172171fa9e90f1d2

2 years agoDocumentation #2023: Documentation on Kokkos interoperability 40/5140/2
Jaemin Choi [Sun, 28 Apr 2019 19:39:04 +0000 (15:39 -0400)]
Documentation #2023: Documentation on Kokkos interoperability

Change-Id: Ie69a944393be9d0124a7ebaffa0dd960a6286138

2 years agoAdd CUDA mempool test example 96/5096/12
Jaemin Choi [Mon, 15 Apr 2019 22:52:30 +0000 (18:52 -0400)]
Add CUDA mempool test example

Change-Id: I216fdf4c8075c4d6344433dfbacbdc1407c81e10

2 years agoFeature #2068: Dynamic GPU mempool support 88/5088/12
Jaemin Choi [Sun, 14 Apr 2019 04:08:43 +0000 (00:08 -0400)]
Feature #2068: Dynamic GPU mempool support

Change-Id: Id35f36e7a9e40ac9e5cc9abcf6cf94c13ecedd3c

2 years agoZC Direct API: Reset counter immediately in pingpong examples 46/5146/2
Nitin Bhat [Mon, 29 Apr 2019 18:45:59 +0000 (13:45 -0500)]
ZC Direct API: Reset counter immediately in pingpong examples

Previously, the counter was reset inside endGetGetPingpong and this
caused an occasional hang in the execution because the incremented counter
value never reached the desired value. This issue is fixed by resetting
the counter immediately inside the beginGetGetPingpong method. This
patch fixes the multicore-linux-x86_64 hang seen in last night's
autobuild(29th April, 2019).

Change-Id: Iedc460aeb11438f06945f3b2697879bf17cfcf86

2 years agoCleanup: Avoid passing XLC parameters to native GCC on Blue Gene 43/5143/1
Evan Ramos [Mon, 29 Apr 2019 15:49:29 +0000 (10:49 -0500)]
Cleanup: Avoid passing XLC parameters to native GCC on Blue Gene

Change-Id: Idb7cbd1eeb81b9622d15c4e711f53a6e961a2ace

2 years agoLink conv-cpm as C++ 42/5142/1
Evan Ramos [Mon, 29 Apr 2019 15:44:59 +0000 (10:44 -0500)]
Link conv-cpm as C++

Change-Id: Ic39b64a1d93f1d284442ce863e4a0c4a6022de95

2 years agoAddition of XI-Builder, a library front-end for XLAT-I. 18/5118/4
Justin Szaday [Wed, 24 Apr 2019 18:17:46 +0000 (13:17 -0500)]
Addition of XI-Builder, a library front-end for XLAT-I.

Change-Id: I72caad641c5372a38d74849edd54169f789d9eef

2 years agocharmc: Set default linking language to C++ 38/5138/4
Evan Ramos [Sun, 28 Apr 2019 17:30:33 +0000 (12:30 -0500)]
charmc: Set default linking language to C++

Change-Id: Icd707548d58bd4440b2c03bdcedab807ea131107

2 years agoFix more C++ transition issues 39/5139/3
Evan Ramos [Sun, 28 Apr 2019 17:36:54 +0000 (12:36 -0500)]
Fix more C++ transition issues

Change-Id: I5f73758ca6be61e5d728d980d4b3c26621b9a2dc

2 years agoFix additional C++ transition issues 26/5126/6
Evan Ramos [Fri, 26 Apr 2019 17:46:53 +0000 (12:46 -0500)]
Fix additional C++ transition issues

Change-Id: I7cb91e2cea05bddf174e6dc8d49476f9bdceda37

2 years agohwloc: Disable OpenCL support 27/5127/2
Evan Ramos [Fri, 26 Apr 2019 17:51:16 +0000 (12:51 -0500)]
hwloc: Disable OpenCL support

Change-Id: I3c556d1a01f32479351692c97397c431c536aa12

2 years agoFix -Wstrict-prototypes warnings 25/5125/1
Evan Ramos [Fri, 26 Apr 2019 18:04:03 +0000 (13:04 -0500)]
Fix -Wstrict-prototypes warnings

Change-Id: I91f7aa870314542e36501b832c7799771a9652ae

2 years agoFix warning: "_GNU_SOURCE" redefined 24/5124/1
Evan Ramos [Fri, 26 Apr 2019 17:52:14 +0000 (12:52 -0500)]
Fix warning: "_GNU_SOURCE" redefined

Change-Id: I79f045a37a408cd30711f4b8a8826f714f62eeb9

2 years agoZC Bcast Post API: Add guard for resetting envelope type and ep 23/5123/2
Nitin Bhat [Fri, 26 Apr 2019 16:35:13 +0000 (11:35 -0500)]
ZC Bcast Post API: Add guard for resetting envelope type and ep

This fixes the megampi crashes in multicore and ofi-linux-x86_64-smp
builds.

Change-Id: I989075233d28c93105e328c30f1122a6a274f2ce

2 years agoRestore support for older MS MPI include path 22/5122/1
Evan Ramos [Fri, 26 Apr 2019 17:04:26 +0000 (12:04 -0500)]
Restore support for older MS MPI include path

Change-Id: Ic2e6bd7752a1a2125c947fdf9dc83a4db180f4f1

2 years agoAdditional C linkage cleanup 73/5073/10
Evan Ramos [Thu, 11 Apr 2019 16:53:10 +0000 (11:53 -0500)]
Additional C linkage cleanup

Change-Id: Icba49e7f0321c6ac2b15e0c035ae19513cc4a8c7

2 years agoClean up C linkage specific to the C++ migration 83/4883/22
Evan Ramos [Fri, 4 Jan 2019 19:18:31 +0000 (13:18 -0600)]
Clean up C linkage specific to the C++ migration

These are the principles applied in this patch:

* Remove most instances of CMI_EXTERNC, since they were private to the
RTS and we no longer have a mix of C and C++ files.
* Replace remaining instances of CMI_EXTERNC with CLINKAGE
* Remove instances of extern "C" { } surrounding #includes
* Remove spurious instances of extern "C" at definition sites
* Ensure CLINKAGE/extern "C" is on the same line as what follows it,
whether it is a curly brace or a declaration, for improved greppability

extern "C" should always be attached to a declaration in a header in
order to avoid mismatches between definitions and callers elsewhere.

Change-Id: I4c6ef8351d53636e98cbc02e25048a851f05b790

2 years agoRename the majority of remaining C files in the RTS to C++ 82/4882/17
Evan Ramos [Fri, 4 Jan 2019 18:47:06 +0000 (12:47 -0600)]
Rename the majority of remaining C files in the RTS to C++

It is unlikely that this patch will pass verification, but all problems
should be fixed in subsequent patches merged at the same time, and I
prefer to keep the patches separate for better historical organization.

If this commit causes problems with git bisect, use a bisection script
and ensure it emits error code 125 when a build is unable to complete.
See https://git-scm.com/docs/git-bisect#_bisect_run for more
information.

Change-Id: Iaaa03b3436ea4b2a69b4f4e5035e146be2199530

2 years agoAvoid building user-driven-interop example on non-LRTS layers 21/5121/3
Evan Ramos [Thu, 25 Apr 2019 20:19:42 +0000 (15:19 -0500)]
Avoid building user-driven-interop example on non-LRTS layers

Change-Id: I6112c85fd92ece9a7e556f23029c4ff381961e1c

2 years agoFix duplicated building of TCharm .ci files 20/5120/1
Evan Ramos [Thu, 25 Apr 2019 19:54:21 +0000 (14:54 -0500)]
Fix duplicated building of TCharm .ci files

This issue occasionally leads to strange build failures in TCharm likely
due to this race condition.

Change-Id: I514c75963c14981533a37c4b97a35303a2559786

2 years agoFix parallel build of examples/charm++/user-driven-interop 19/5119/3
Evan Ramos [Thu, 25 Apr 2019 17:46:44 +0000 (12:46 -0500)]
Fix parallel build of examples/charm++/user-driven-interop

Change-Id: Ia61e62b7e01a15308241250468918c1b79652085

2 years agoZC Bcast for large RO data: Add a benchmark to compare with regular bcast 54/5054/18
Nitin Bhat [Mon, 1 Apr 2019 18:43:31 +0000 (13:43 -0500)]
ZC Bcast for large RO data: Add a benchmark to compare with regular bcast

Change-Id: I915c75eff84fcbbae1240db167849b309e52bd49

2 years agoZC Bcast APIs: Add a benchmark to compare bcast APIs 60/4960/31
Nitin Bhat [Tue, 19 Feb 2019 15:07:02 +0000 (09:07 -0600)]
ZC Bcast APIs: Add a benchmark to compare bcast APIs

Change-Id: I8310c89e5e26fa6e49040029d488794226ad889c

2 years agoZC P2P APIs: Add a benchmark to compare send only and send/recv APIs 56/4956/29
Nitin Bhat [Fri, 15 Feb 2019 23:11:20 +0000 (17:11 -0600)]
ZC P2P APIs: Add a benchmark to compare send only and send/recv APIs

Change-Id: I496de6884e3ae5c5e7799823c247bc8d3ae3cf77

2 years agoZC EM Bcast Post API: Add examples for each registration mode 81/4981/20
Nitin Bhat [Mon, 25 Feb 2019 23:33:53 +0000 (15:33 -0800)]
ZC EM Bcast Post API: Add examples for each registration mode

Change-Id: I25a2c4aeec4999587ccb5af86104055185240ccb

2 years agoZcpy Bcast Post API: Add a ping_all benchmark 50/4950/24
Nitin Bhat [Wed, 13 Feb 2019 21:41:24 +0000 (15:41 -0600)]
Zcpy Bcast Post API: Add a ping_all benchmark

Change-Id: I6bf4c3afaf23a804d21ccd7d2e373c3d91362477

2 years agoFix linking error with non-LRTS PAMI layer 16/5116/1
Evan Ramos [Wed, 24 Apr 2019 19:34:16 +0000 (14:34 -0500)]
Fix linking error with non-LRTS PAMI layer

Change-Id: I9ebd4d5cd587546bd2f44b3c85f9896f3094f833

2 years agoZC EM Post API: Add examples for each registration mode 80/4980/21
Nitin Bhat [Mon, 25 Feb 2019 22:51:08 +0000 (14:51 -0800)]
ZC EM Post API: Add examples for each registration mode

Change-Id: Icae263b84bf8f2ba12a6600e6550af4a63d635aa

2 years agoZC EM Post API: Allow Post entry method to specify registration mode 77/4977/21
Nitin Bhat [Mon, 25 Feb 2019 18:42:41 +0000 (12:42 -0600)]
ZC EM Post API: Allow Post entry method to specify registration mode

Change-Id: Icbc28ecee6541236e66c6a2333045415e9e20873

2 years agoFix linking failures in interop changes 13/5113/4
Evan Ramos [Tue, 23 Apr 2019 16:40:41 +0000 (11:40 -0500)]
Fix linking failures in interop changes

Change-Id: I42dc792c2b1e143301af6e9b79fe6eb6d20f311a

2 years agoZC EM API: Optimize charmxi generated code and remove unnecessary code 72/4972/20
Nitin Bhat [Fri, 22 Feb 2019 22:37:36 +0000 (16:37 -0600)]
ZC EM API: Optimize charmxi generated code and remove unnecessary code

The optimization involves computing the number of rdma send and recv
parameters during compile time instead of run time( as done previously).
For the ZC EM Post API, this allows us to statically allocate the array
of posted pointers instead of a dynamic allocation, which was used
earlier.

Change-Id: I3c88e36f0854130dbeab0534d77e59006fcf61ce

2 years agoFeature #2053: Zerocopy Broadcast Post API 43/4943/30
Nitin Bhat [Wed, 6 Feb 2019 20:00:02 +0000 (15:00 -0500)]
Feature #2053: Zerocopy Broadcast Post API

Change-Id: Iee1a824f62eb7cf15f0608ab136ffc0ac4ceeba7

2 years agoFix multicore test incompatibility in user-driven-interop 12/5112/1
Evan Ramos [Tue, 23 Apr 2019 16:29:50 +0000 (11:29 -0500)]
Fix multicore test incompatibility in user-driven-interop

Change-Id: Ia958fa06a9396f316e9de342752c204e48175484

2 years agoFix bugs in tests/ampi/megampi 08/5108/4
Evan Ramos [Fri, 19 Apr 2019 19:51:51 +0000 (14:51 -0500)]
Fix bugs in tests/ampi/megampi

Change-Id: Ie8a41ac083b19771ead87dbb5688768d4e073e3a

2 years agoAllow tests/ampi/megampi to compile as a conventional MPI program 07/5107/4
Evan Ramos [Fri, 19 Apr 2019 19:28:52 +0000 (14:28 -0500)]
Allow tests/ampi/megampi to compile as a conventional MPI program

Change-Id: I3ad78814b360c0fa9f5be9b25aeba83e0993132d

2 years agoFix C++ build error in bigsim 79/5079/4
Evan Ramos [Thu, 11 Apr 2019 18:44:26 +0000 (13:44 -0500)]
Fix C++ build error in bigsim

Change-Id: I2c48ece74ddf078e5830097a5679e8aa41fcd3b3

2 years agoBug #2063: Allow CkCallback::ckExit to work with interop 06/5106/2
Eric Mikida [Fri, 19 Apr 2019 03:49:37 +0000 (23:49 -0400)]
Bug #2063: Allow CkCallback::ckExit to work with interop

Change-Id: Ic2ee8bc7bc56333c0b039804dd8535f19a713ad6

2 years agoInterop bug fixes at exit 13/913/7
Nikhil Jain [Sat, 14 Nov 2015 19:14:16 +0000 (13:14 -0600)]
Interop bug fixes at exit

When exit is called, the scheduler should not be stopped immediately since
pending messages, including the exit broadcast, need to be sent out first.
This change relies on LrtsDrainResources to handle this.

Co-authored-by: Eric Mikida <epmikida@hpccharm.com>
Change-Id: I92f81f9ab2d14b89bb05a627a6c7b9764e1e16cf

2 years agoEliminated the need for mainchares in interopt mode. 32/2732/24
Justin Szaday [Mon, 26 Jun 2017 18:59:24 +0000 (13:59 -0500)]
Eliminated the need for mainchares in interopt mode.

This changes charm initialization for userDrivenMode to a split initialization.
The API remains the same, but when using interop mode, the charm code should no
longer call CkExit() from the main chare or during initialization. The scheduler
is automatically stopped after initialization by the runtime system.

Co-authored-by: Eric Mikida <epmikida@hpccharm.com>
Change-Id: Iacd42b2d5e8c940807c143e6cec866fc2041f7ac

2 years agoFeature #1236: Zerocopy P2P Post API 20/4820/41
Nitin Bhat [Thu, 25 Oct 2018 01:10:41 +0000 (21:10 -0400)]
Feature #1236: Zerocopy P2P Post API

Change-Id: Ic35fc097701b89d8eede45845ea5535c23f63f06

2 years agoAdd CMK_MULTICORE to conv-mach-opt.mak through the configure script 10/5110/1
Nitin Bhat [Fri, 19 Apr 2019 21:20:46 +0000 (16:20 -0500)]
Add CMK_MULTICORE to conv-mach-opt.mak through the configure script

This change is required to make CMK_MULTICORE available to
makefiles for skipping tests/examples which cannot be run on
CMK_MULTICORE.

Change-Id: I5fb8fff07216b438789e47d8b2dee5b4d5047c6f

2 years agoZC RO Bcast Example: Add testcases for +p1 and +p6 01/5101/7
Nitin Bhat [Tue, 16 Apr 2019 20:14:56 +0000 (15:14 -0500)]
ZC RO Bcast Example: Add testcases for +p1 and +p6

+p1 testcase is a single process run and +p6 testcase exercises
intermediate nodes.

Change-Id: Icb3b58789c163a8ea66e03ef0d393601048dbcbd

2 years agoZC RO Bcast: Deallocate objects and de-register buffers after completion 00/5100/8
Nitin Bhat [Tue, 16 Apr 2019 20:12:23 +0000 (15:12 -0500)]
ZC RO Bcast: Deallocate objects and de-register buffers after completion

Change-Id: Icc6c52d47d1c04bbb1904e9b53f4d4a92f9a3c52

2 years agoZC RO Bcast: Allocate structures for ack handling only on intermediate nodes 99/5099/6
Nitin Bhat [Tue, 16 Apr 2019 17:54:39 +0000 (12:54 -0500)]
ZC RO Bcast: Allocate structures for ack handling only on intermediate nodes

Change-Id: I9489859819b859be575c2ef2b93320dd36d7f806

2 years agoZC RO Bcast: Wait for RO Rdma Ops to complete only on Rank 0 98/5098/4
Nitin Bhat [Wed, 17 Apr 2019 22:44:00 +0000 (17:44 -0500)]
ZC RO Bcast: Wait for RO Rdma Ops to complete only on Rank 0

Change-Id: Ic7be6e55e0412d1908da7a46e5b4495ebd7ba5c2

2 years agoZC RO Bcast: Initialize _numPendingRORdmaTransfers with numZerocopyROops 97/5097/4
Nitin Bhat [Tue, 16 Apr 2019 17:50:28 +0000 (12:50 -0500)]
ZC RO Bcast: Initialize _numPendingRORdmaTransfers with numZerocopyROops

Previously, _numPendingRORdmaTransfers was initialized to 0 and
incremented inside the readonlyGet method, which was called when
the RO variable was being unpacked. This caused a race condition
where the the first RDMA Get operation could be completed before
_numPendingRORdmaTransfers was incremented again for a second RO
variable. Hence, this fix initializes _numPendingRORdmaTransfers
before launching any RDMA operations to avoid completion of an
RDMA operation before _numPendingRORdmaTransfers is initialized
to the total number of RDMA RO variables.

Change-Id: Ie53ee802c3eabfbb2d0c3cf57776a9365fa050a7

2 years agoZC RO Bcast: Fix envelope retrieval in charmxi for RO static arrays 03/5103/1
Nitin Bhat [Wed, 17 Apr 2019 21:01:00 +0000 (16:01 -0500)]
ZC RO Bcast: Fix envelope retrieval in charmxi for RO static arrays

The previous code was erroneous and gave an offsetted pointer.

Change-Id: I6bc514827a6dfb60e813502ad73da55014e441ec

2 years agoAMPI: Fix CmiReference in AmpiSeqQ::putOutOfOrder 90/5090/2
Evan Ramos [Mon, 15 Apr 2019 21:03:44 +0000 (16:03 -0500)]
AMPI: Fix CmiReference in AmpiSeqQ::putOutOfOrder

Change-Id: I8265f6fb9a5e1a0445f652c9185bee702b9f3c7c

2 years agoTests: Add CmiInitMsgHeader calls for non-CmiAlloc message allocations 94/5094/3
Nitin Bhat [Mon, 15 Apr 2019 21:28:56 +0000 (16:28 -0500)]
Tests: Add CmiInitMsgHeader calls for non-CmiAlloc message allocations

Change-Id: If269b7c43738c5ff05bb26c88187f47c5f4bf9a8

2 years agoRTS: Add CmiInitMsgHeader calls for non-CmiAlloc message allocations 93/5093/2
Nitin Bhat [Mon, 15 Apr 2019 20:10:25 +0000 (15:10 -0500)]
RTS: Add CmiInitMsgHeader calls for non-CmiAlloc message allocations

Change-Id: I2fc32cf462150dbae6f7ac00baf6656da9b7900f

2 years agoConverse: Remove explicit initializations of zcMsgType 92/5092/2
Nitin Bhat [Mon, 15 Apr 2019 19:59:07 +0000 (14:59 -0500)]
Converse: Remove explicit initializations of zcMsgType

Since zcMsgType field is initialized to the default value
(CMK_REG_NO_ZC_MSG) inside CmiAlloc, there is no need to explicitly
set zcMsgType for messages allocated using CmiAlloc. This patch
removes these explicit (and duplicate) initializations from the
Converse RTS (convcore.C and cputopology.C).

Change-Id: Ib39a079d50dca20c0a3c3ede2376851d0dbfdf4d

2 years agoConverse: Add API to initialize converse message header fields 91/5091/2
Nitin Bhat [Mon, 15 Apr 2019 19:49:29 +0000 (14:49 -0500)]
Converse: Add API to initialize converse message header fields

void CmiInitMsgHeader(void *msg, int size) is the newly added method
that allows a user to set the converse message fields to desired
defaults. Currently, only zcMsgType is being set to CMK_REG_NO_ZC_MSG
inside CmiInitMsgHeader. This initialization is performed internally
for all allocations made using CmiAlloc and CmiRdmaAlloc. It needs
to be explicitly called for Charm++/Converse message allocations made
without these calls.

Change-Id: I843dbe5264cfbf6efc755ef781f36974ef533da0

2 years agochange Redmine to GitHub URLs 89/5089/1
Matthias Diener [Sun, 14 Apr 2019 16:49:56 +0000 (11:49 -0500)]
change Redmine to GitHub URLs

Change-Id: I3497b9baff4994dc6b7544b536227e9a78eaebf5

2 years agoZcpy API: Set default zcMsgType to CMK_REG_NO_ZC_MSG 86/5086/2
Nitin Bhat [Sun, 14 Apr 2019 02:11:37 +0000 (21:11 -0500)]
Zcpy API: Set default zcMsgType to CMK_REG_NO_ZC_MSG

This default initialization is performed inside CmiAlloc and
CmiRdmaAlloc for all allocations of size greater than
CmiMsgHeaderSizeBytes. For non-message allocations, since the
value of CMK_REG_NO_ZC_MSG is 0, it is equivalent to performing
a memset of those bits to 0.

Change-Id: I61eae7a4c0d604301ac14ccf68de3b72ad4bb7cc

2 years agoZC Bcast API for multicore builds: Add zcMsType:2 to conv-common.h 87/5087/1
Nitin Bhat [Sat, 13 Apr 2019 21:58:51 +0000 (16:58 -0500)]
ZC Bcast API for multicore builds: Add zcMsType:2 to conv-common.h

Change-Id: I5e6e813299b83a354943f458c67c7b2fc6c4d9a9

2 years agoAMPI: Optimize behavior of AmpiMsgPool::newAmpiMsg 83/5083/6
Evan Ramos [Fri, 12 Apr 2019 19:20:07 +0000 (14:20 -0500)]
AMPI: Optimize behavior of AmpiMsgPool::newAmpiMsg

1. Compare the requested length with the true size of individual
messages instead of the pool's msgLength.
2. When allocating new messages that are smaller than msgLength, use
msgLength as their true size so they are eligible for reuse in the pool.

Change-Id: If3a8f05eed7a0a798146ed22aadf195f8b9dcdcf

2 years agoAMPI: Fix AmpiMsgPool::deleteAmpiMsg conditional 80/5080/8
Evan Ramos [Fri, 12 Apr 2019 19:02:09 +0000 (14:02 -0500)]
AMPI: Fix AmpiMsgPool::deleteAmpiMsg conditional

Change-Id: I6669c6852c966cf0963bce642350218f9cf0b0d8

2 years agoAMPI: Fix AmpiMsg::pup 82/5082/3
Evan Ramos [Fri, 12 Apr 2019 18:55:25 +0000 (13:55 -0500)]
AMPI: Fix AmpiMsg::pup

Change-Id: I8d6538c3d989345fd75ae7323e1e4b983bd95998

2 years agoPup numZerocopyROops in RODataMsg after recovering from a failure 84/5084/4
Nitin Bhat [Fri, 12 Apr 2019 17:54:12 +0000 (12:54 -0500)]
Pup numZerocopyROops in RODataMsg after recovering from a failure

This patch fixes autobuild failues caused by crashes in tests/charm++/chkpt
for mpi and verbs targets.

Change-Id: I47f2a0c2cdb0660e2d3b152f7f1bded38ad1b9f5

2 years agoDocumentation #1638: Fix documentation for populateInitial 56/5056/7
Eric Mikida [Tue, 2 Apr 2019 23:49:29 +0000 (19:49 -0400)]
Documentation #1638: Fix documentation for populateInitial

Also adds a simple example for defining array maps with populateInitial.

Change-Id: Ia99c920ad1a0ec4c9ade0c1cfa104dafcf3b4fbf

2 years agoBug #1688: Core Dump file not available unless `--disable-charmdebug` is used while... 78/5078/2
Kavitha Chandrasekar [Thu, 11 Apr 2019 18:54:03 +0000 (13:54 -0500)]
Bug #1688: Core Dump file not available unless `--disable-charmdebug` is used while building.

Generate core dump files when charm is built without --with-production option
or if CmiNumNodes()<=32. Added to netlrts, mpi and verbs builds.

Change-Id: I97dbbfec7aa41604e898a042b8154c5ad23f3c16

2 years agoDefine CMK_TYPEDEF_{INT1,UINT1} for layers without <stdint.h> 81/5081/1
Nitin Bhat [Fri, 12 Apr 2019 15:50:47 +0000 (10:50 -0500)]
Define CMK_TYPEDEF_{INT1,UINT1} for layers without <stdint.h>

These layers include multicore-arm7, mulicore-arm8, pami-bluegeneq,
and pami-linux-ppc64le.

Change-Id: I10d32b6d0f56d17964bed614a077a84467ef776c

2 years agoAdd cmaMsgType field in the converse message header of some layers 77/5077/2
Nitin Bhat [Thu, 11 Apr 2019 18:57:29 +0000 (13:57 -0500)]
Add cmaMsgType field in the converse message header of some layers

The original change is
https://charm.cs.illinois.edu/gerrit/c/charm/+/4924. This change adds
the field to other machine layers that were missed out in the original patch.

Change-Id: Ib33bda727077081d489c4fe374d6a89e75859e1d

2 years agoZcpy Bcast Send API: Guard ZC API macros for non-RDMA layers 76/5076/2
Nitin Bhat [Thu, 11 Apr 2019 18:24:44 +0000 (13:24 -0500)]
Zcpy Bcast Send API: Guard ZC API macros for non-RDMA layers

Change-Id: I7d97a948ce5fc8a3b4ee9be06f088fd06bd5f7ad

2 years agoZcpy Bcast Send API : Send singleton chare messages as a P2P message 75/5075/2
Nitin Bhat [Thu, 11 Apr 2019 17:33:08 +0000 (12:33 -0500)]
Zcpy Bcast Send API : Send singleton chare messages as a P2P message

Change-Id: Ia1b94f9671e4f2008852bcc20f1f91b670503d30

2 years agoZcpy Bcast Send API: Fix condition for marking BCAST messages 74/5074/2
Nitin Bhat [Thu, 11 Apr 2019 16:33:53 +0000 (11:33 -0500)]
Zcpy Bcast Send API: Fix condition for marking BCAST messages

Change-Id: I2c4be8705dc7aa02459f7ad51484a2f847bfbd27

2 years agoFix compiler warnings thrown by Zero Copy API patches merged so far 72/5072/1
Nitin Bhat [Wed, 10 Apr 2019 21:25:45 +0000 (16:25 -0500)]
Fix compiler warnings thrown by Zero Copy API patches merged so far

Change-Id: Ic2203d9a62553f252266060cfb44199c7bc5cb3c

2 years agoDo not setObjPtr for nodegroup messages 10/4910/13
Nitin Bhat [Fri, 18 Jan 2019 21:58:44 +0000 (15:58 -0600)]
Do not setObjPtr for nodegroup messages

Previously, on receiving nodegroup messages, 'setObjPtr' was called
to set the local object pointer in the received message. This was later
used to invoke the entry method on the local object (by calling
'getObjPtr'). Calling 'setObjPtr' sets the ptr field in the union
variable called 'type', overwriting the CkGroupID field of the union.

For supporting the Zerocopy Post API for nodegroups, this CkGroupID field
was necessary to be retained correctly in the envelope. For this reason,
this patch does not call 'setObjPtr' and instead directly passes the local obj
ptr to 'invokeEntry' method without having the need to set/get the local
obj pointer in the envelope. Additionally, nodegroup messages do not
have their type set to 'ForChareMsg' anymore and the function
'_processForChareMsg' is removed from the code as it is no longer used.

Change-Id: Id2eb75e9f08719d8c9e2f42261abf711e25694c4

2 years agoDisable CMK_ONESIDED_IMPL for pamilrts-bluegeneq 40/5040/6
Nitin Bhat [Mon, 25 Mar 2019 18:03:12 +0000 (13:03 -0500)]
Disable CMK_ONESIDED_IMPL for pamilrts-bluegeneq

The zerocopy broadcast API fails during the zerocopy transfer of
large readonly variables, with the following error:
/bgsys/source/srcV1R2M4.29840/comm/sys/buildtools/pami/components/
devices/shmem/shaddr/BgqShaddr.h<330> .. Kernel_Physical2Virtual(), rc = 2

Previously, CMK_ONESIDED_IMPL was disabled for pamilrts-bluegeneq-smp.
With this commit, the zerocopy API is disabled for pamilrts until
these issues are fixed.

Change-Id: Ifb3e08cec6c03b4d300ca133071994ccf3079b25

2 years agoFeature #1742: Use ZC infrastructure for bcast of large readonly variables 37/4637/27
Nitin Bhat [Fri, 5 Oct 2018 21:17:12 +0000 (17:17 -0400)]
Feature #1742: Use ZC infrastructure for bcast of large readonly variables

A macro CMK_ONESIDED_RO_THRESHOLD is used to specify the threshold
which represents the size in bytes over which the Zerocopy API is used
to broadcast the large readonly variables. Currently, it is defined
in src/arch/util/lrts-common.h. In the future, it has to be a layer
dependent macro that is computed based on experiments and defined in
src/arch/<layer>/conv-common.h.

Change-Id: I261345f2e8bc1520c6b67f08ae8abf79f9534ce3

2 years agoZcpy Bcast Sender-side API: Add a ping_all benchmark 00/4900/9
Nitin Bhat [Wed, 16 Jan 2019 16:55:19 +0000 (11:55 -0500)]
Zcpy Bcast Sender-side API: Add a ping_all benchmark

Change-Id: I66d9fe9a4326adc013cfa38340e7aae5d43102fe

2 years agoZcpy Bcast Sender-side API: Add examples for each registration mode 80/4680/18
Nitin Bhat [Wed, 10 Oct 2018 15:12:40 +0000 (11:12 -0400)]
Zcpy Bcast Sender-side API: Add examples for each registration mode

Change-Id: I9cc4ec2366bc5f270302cae286e43c0fa194e31a

2 years agoZcpy Bcast Sender-side API: Add a large buffer bcast benchmark 16/3816/36
Nitin Bhat [Tue, 2 Oct 2018 18:26:03 +0000 (14:26 -0400)]
Zcpy Bcast Sender-side API: Add a large buffer bcast benchmark

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

2 years agoInitialize zcMsgType for all message allocations 49/4949/8
Nitin Bhat [Fri, 8 Feb 2019 19:48:05 +0000 (13:48 -0600)]
Initialize zcMsgType for all message allocations

zcMsgType is a converse header field used for identifying
zero copy messages (P2P_SEND, BCAST_SEND etc) from regular
charm messages (NO_ZC). For that reason, it is required to
initialize all allocated messages to NO_ZC to ensure that
they are not treated like zero copy messages.

Change-Id: I110769b2185c650c14c53a456bd4b687d4787783

2 years agoChange CmiUInt2 msgType to CmiUInt1 cmaMsgType:2 in conv-common.h 24/4924/8
Nitin Bhat [Fri, 25 Jan 2019 21:18:04 +0000 (15:18 -0600)]
Change CmiUInt2 msgType to CmiUInt1 cmaMsgType:2 in conv-common.h

msgType was used to identify messages for usage of CMA in SHM transport
for regular Charm++ messages. This patch reduces the size of msgType to
a 2 bit sized unsigned integer field and renames the field to cmaMsgType.

Change-Id: I77547f5bf4d0e15ee61315093632a8c0bfddca2c

2 years agoFeature #1834: Zerocopy Broadcast Sender-side API 95/4395/35
Nitin Bhat [Fri, 5 Oct 2018 19:39:48 +0000 (15:39 -0400)]
Feature #1834: Zerocopy Broadcast Sender-side API

Add support to broadcast a large buffer using the Zerocopy API
to multiple recipients. Uses memcpy, CMA or RDMA internally
depending upon the the location of the recipient. The received
buffer is Readonly. This change uses the existing infrastructure
and tree algorithm used for broadcasting regular messages.

Change-Id: Ib9b1be1a52c9cf488cec7f4052f949f14c0bbbb0

2 years agoMake ZC EM API pingpong benchmarks accept user params and add a warmup phase 99/4899/8
Nitin Bhat [Wed, 16 Jan 2019 18:02:17 +0000 (13:02 -0500)]
Make ZC EM API pingpong benchmarks accept user params and add a warmup phase

Change-Id: I161dfb4b112ceb4b7d70cff6818b963974262f72

2 years agoExtend FPU POINTER test in configure.ac to check for fpregs 70/5070/2
Juan Galvez [Wed, 10 Apr 2019 14:55:22 +0000 (09:55 -0500)]
Extend FPU POINTER test in configure.ac to check for fpregs

On some systems, like Raspberry Pi 32 bit, the fpregs field
does not exist, and compiling conv-core/threads.c with
CMK_CONTEXT_FPU_POINTER=1 will fail.

Change-Id: I61ef166e989ec25622fb31328e185d00c3b515bb

2 years agodoc: clean up syntax highlighting 69/5069/3
Matthias Diener [Tue, 9 Apr 2019 21:36:25 +0000 (16:36 -0500)]
doc: clean up syntax highlighting

- always put language explicitly, not via '::'
- fix a few misidentified code block languages
- use 'c++' language instead of 'cpp', 'c', 'C'

Change-Id: Ie40bc67ed1385aef3b59f7c1ac6c38e16f108758

2 years agodoc: fix bash code blocks 66/5066/3
Matthias Diener [Tue, 9 Apr 2019 18:44:14 +0000 (13:44 -0500)]
doc: fix bash code blocks

- tag them with the correct code-blocks statement
- consistently use '$' instead of '>' as the prompt

Change-Id: I354b6cb65af62687e6a98b4df7693bc688f59d60

2 years agodoc: cleanup manual titles 64/5064/3
Matthias Diener [Mon, 8 Apr 2019 20:41:58 +0000 (15:41 -0500)]
doc: cleanup manual titles

Change-Id: I10bc07ac84d2a98eb3c92ec8138646b165f49820