charm.git
2 years agoFeature #1983: Made CmiWallTimer monotonic in the common case 05/4705/14
VenkatN [Wed, 17 Oct 2018 16:38:23 +0000 (11:38 -0500)]
Feature #1983: Made CmiWallTimer monotonic in the common case

Reimplemented one of CmiWallTimer's commonly used code branches to use
the highest resolution steady clock from C++11 instead of gettimeofday.
The new implementation also stores the epoch in an integral time_point,
and uses the starting time of the program as the epoch to reduce the
internal floating-point error.

Change-Id: I4ad82339bda69b9a17ba408ed824d1dea36cdf74

2 years agoZC EM Send API: Combine two methods into one to avoid redundancy 21/4921/4
Nitin Bhat [Thu, 24 Jan 2019 22:05:30 +0000 (16:05 -0600)]
ZC EM Send API: Combine two methods into one to avoid redundancy

Change-Id: I035ee8a6522556db18623dc27bd6117e36f53d0b

2 years agoAdded a missing line 42/4942/1
raghavendrak [Thu, 7 Feb 2019 22:43:19 +0000 (16:43 -0600)]
Added a missing line

Change-Id: Ie4380e92769b4abf0d1e60c1562befa5861e3067

2 years agoDocumentation #2044: improve callback example 27/4927/6
Sam White [Mon, 28 Jan 2019 20:10:40 +0000 (14:10 -0600)]
Documentation #2044: improve callback example

Change-Id: I335410e9105a396c4f8c42b60bd3df0e402e7877

2 years agoFeature #2039: update Boost ULTs to v1.69 28/4928/4
Sam White [Mon, 28 Jan 2019 20:22:56 +0000 (14:22 -0600)]
Feature #2039: update Boost ULTs to v1.69

Change-Id: I656c08e1755510d35b9a25b578e44fd6e3fed740

2 years agoCleanup: Address -Wunused-result warnings 31/4931/1
Evan Ramos [Tue, 29 Jan 2019 21:25:57 +0000 (15:25 -0600)]
Cleanup: Address -Wunused-result warnings

Change-Id: I405351337319636472a288938ed4a51318919b25

2 years agoCleanup: Address -Wformat-overflow warnings 30/4930/1
Evan Ramos [Tue, 29 Jan 2019 21:02:35 +0000 (15:02 -0600)]
Cleanup: Address -Wformat-overflow warnings

Change-Id: I1bde0b70633514e4480901ba076f277150a14cbf

2 years agoBug #2049: allow virtual inheritance from multiple PUPable base classes 26/4926/2
Sam White [Mon, 28 Jan 2019 18:43:42 +0000 (12:43 -0600)]
Bug #2049: allow virtual inheritance from multiple PUPable base classes

Change-Id: I7ed18e50c1abf386a7e414762e5545dfc0c61b8a

2 years agodoc: Syntax fixes to Converse and Charm++ Libraries section 17/4917/2
Jaemin Choi [Tue, 22 Jan 2019 22:38:19 +0000 (17:38 -0500)]
doc: Syntax fixes to Converse and Charm++ Libraries section

Change-Id: I9a3d815e7257c4155410ccacfb137c8e3562c53d

2 years agodoc: Syntax changes to Sections 1.3.3 - 1.3.8 15/4915/2
Jaemin Choi [Tue, 22 Jan 2019 22:00:53 +0000 (17:00 -0500)]
doc: Syntax changes to Sections 1.3.3 - 1.3.8

Change-Id: If694fc9c2f55c886a6dd3074df921a6d82c46fcf

2 years agobuild: Don't create the lib_so folder if --build-shared is not specified 95/4895/5
Evan Ramos [Fri, 11 Jan 2019 21:44:33 +0000 (15:44 -0600)]
build: Don't create the lib_so folder if --build-shared is not specified

Change-Id: Ic04335dff8ab7db8435217b71054a03e8e9dbe45

2 years agodoc: review faq 20/4920/1
Matthias Diener [Wed, 23 Jan 2019 21:57:09 +0000 (15:57 -0600)]
doc: review faq

Change-Id: I61052ef603110c4e1a98d8c361e496bf44e2a285

2 years agodoc: tcharm review 19/4919/1
Matthias Diener [Wed, 23 Jan 2019 18:39:22 +0000 (12:39 -0600)]
doc: tcharm review

Change-Id: I1205aa39b6b5819735ade33bd41ce03a8ddd31f6

2 years agoDocs: Review Jade 16/4916/3
Nitin Bhat [Tue, 22 Jan 2019 22:18:32 +0000 (16:18 -0600)]
Docs: Review Jade

Change-Id: Iba2fc42f653df97144cd5c607e0e2a415d57bd15

2 years agodoc: fix section reference 14/4914/2
Matthias Diener [Tue, 22 Jan 2019 21:34:13 +0000 (15:34 -0600)]
doc: fix section reference

Change-Id: I917b3d799613dda8c36f9ab8c35ea37aa3b32203

2 years agoDocs: Review Converse 07/4907/4
Nitin Bhat [Thu, 17 Jan 2019 22:59:57 +0000 (16:59 -0600)]
Docs: Review Converse

Change-Id: I46b87a6ecbbc9070d2cf28625142ff096005a0ca

2 years agoDocs: Review mblock 13/4913/2
Evan Ramos [Tue, 22 Jan 2019 00:03:12 +0000 (18:03 -0600)]
Docs: Review mblock

Change-Id: I557c4f0e9897f8bc1f6e11ab3f0a751d12f7017d

2 years agoDocs: Review debugger 12/4912/2
Evan Ramos [Mon, 21 Jan 2019 23:37:44 +0000 (17:37 -0600)]
Docs: Review debugger

Change-Id: I7be5ff0bc0ea2d27b850a9d0e518b8cc76f16716

2 years agoDocs: Review f90charm 11/4911/2
Evan Ramos [Mon, 21 Jan 2019 23:15:57 +0000 (17:15 -0600)]
Docs: Review f90charm

Change-Id: I04f4ae1dd0dab6160ac430e93bbf5e7fb90c1df5

2 years agodoc: add license 04/4904/3
Matthias Diener [Thu, 17 Jan 2019 20:27:00 +0000 (14:27 -0600)]
doc: add license

Change-Id: Ia56fddf226c5cb8c9ce33bfa538fce1d866f622c

2 years agoCkloop-hybrid: add authorship 06/4906/4
Matthias Diener [Thu, 17 Jan 2019 21:45:17 +0000 (15:45 -0600)]
Ckloop-hybrid: add authorship

Change-Id: I412f51ff93491656e58ba27471aafd5827faea01

2 years agocharmrun: do not show help on -h|-?|--help 01/4901/2
Matthias Diener [Wed, 16 Jan 2019 21:16:51 +0000 (15:16 -0600)]
charmrun: do not show help on -h|-?|--help

These flags are undocumented and interfere with the application in case
it uses -h etc. for something else.
Help is still shown on ++help.

Change-Id: I5aed5492632f5d21127c514e434a136d3d663067

2 years agoAdd hello example for basic Kokkos interoperability 35/4735/3
Jaemin Choi [Fri, 26 Oct 2018 03:34:31 +0000 (23:34 -0400)]
Add hello example for basic Kokkos interoperability

Change-Id: I6d1b99178bde1da819ab36be3d5b81a0eda2b703

2 years agoUpdate hwloc to v1.11.12 97/4897/3
Evan Ramos [Fri, 11 Jan 2019 20:18:37 +0000 (14:18 -0600)]
Update hwloc to v1.11.12

Change-Id: Ia3acd06a3f740c87a95133c002852c6a8bdc86c3

2 years agobuild: Fix duplication of compiler flags during hwloc configure setup 96/4896/3
Evan Ramos [Fri, 11 Jan 2019 21:45:11 +0000 (15:45 -0600)]
build: Fix duplication of compiler flags during hwloc configure setup

Change-Id: I25ab465476ae60fa32829c86712d491be6f5627d

2 years agobuild: Fix --no-build-shared option to properly cancel --build-shared 94/4894/2
Evan Ramos [Fri, 11 Jan 2019 21:43:18 +0000 (15:43 -0600)]
build: Fix --no-build-shared option to properly cancel --build-shared

Change-Id: I005f87a658d964a193f464f85e9058d5436761a4

2 years agobuild #1968: Don't build hwloc or QuickThreads shared objects when --build-shared... 93/4893/2
Evan Ramos [Fri, 11 Jan 2019 20:27:03 +0000 (14:27 -0600)]
build #1968: Don't build hwloc or QuickThreads shared objects when --build-shared is not specified

Change-Id: Iff678d7b53017e754be867db95535d41ac6dd86f

2 years agoCleanup: Replace all uses of CDECL and FDECL with CLINKAGE and FLINKAGE 85/4885/5
Evan Ramos [Fri, 4 Jan 2019 22:49:35 +0000 (16:49 -0600)]
Cleanup: Replace all uses of CDECL and FDECL with CLINKAGE and FLINKAGE

Change-Id: I819b937eea1ae2a0fa65d2f860e27a9cdd988788

2 years agocharm4py: support setting usesAtSync at array element creation 89/4889/2
Juan Galvez [Fri, 11 Jan 2019 17:43:41 +0000 (11:43 -0600)]
charm4py: support setting usesAtSync at array element creation

Change-Id: Id538896acc0bb84e5215dc23a46289cc9c65c701

2 years agoDoc: Converting latex to rst 24/3624/20
Matthias Diener [Mon, 17 Dec 2018 00:14:19 +0000 (18:14 -0600)]
Doc: Converting latex to rst

Rendered as HTML:
https://charm-rtd-test.readthedocs.io/en/latest/

Rendered as PDF:
https://media.readthedocs.org/pdf/charm-rtd-test/latest/charm-rtd-test.pdf

Wiki with more infos:
https://github.com/UIUC-PPL/charm/wiki/RST-manual

Change-Id: I5c1a04cd4d5dc90da4e62c8e49e3d8a19e40ac3b

2 years agoBug #2026: Improve handling of shared objects as linker input to charmc 84/4884/2
Evan Ramos [Fri, 4 Jan 2019 21:38:41 +0000 (15:38 -0600)]
Bug #2026: Improve handling of shared objects as linker input to charmc

Change-Id: I7f90b50432717acdc8428457075782c92d549102

2 years agoAMPI: add deprecated MPI_COMBINER_{HVECTOR_HINDEXED,STRUCT}_INTEGER 88/4888/1
Matthias Diener [Tue, 8 Jan 2019 21:44:25 +0000 (15:44 -0600)]
AMPI: add deprecated MPI_COMBINER_{HVECTOR_HINDEXED,STRUCT}_INTEGER

Necessary for newer ROMIO versions.

Change-Id: I9dec2440a9a746b3e99b29fd0eaa1cf5fc819e63

2 years agoResolve unknown option warnings from GCC due to -Wunused-private-field 81/4881/1
Evan Ramos [Thu, 3 Jan 2019 22:38:52 +0000 (16:38 -0600)]
Resolve unknown option warnings from GCC due to -Wunused-private-field

Change-Id: Id9e4926a8b0897fb6986ee907cbc15a8490426ac

2 years agoCleanup various sources of compiler warnings 78/4878/3
Sam White [Thu, 20 Dec 2018 22:07:23 +0000 (16:07 -0600)]
Cleanup various sources of compiler warnings

Change-Id: I3332663a0c0ac1f2df2af3cbc2ec3a9d30337163

2 years agoShrink size of cond-conds members since CcdUSERMAX defines the max value 77/4877/2
Sam White [Thu, 20 Dec 2018 18:54:29 +0000 (12:54 -0600)]
Shrink size of cond-conds members since CcdUSERMAX defines the max value

Change-Id: I0d6b8821464000d3b9c19aa62128b57039fa34e7

2 years agoRemove unused member variables from ckhashtable that caused compiler warnings 76/4876/2
Sam White [Thu, 20 Dec 2018 18:52:30 +0000 (12:52 -0600)]
Remove unused member variables from ckhashtable that caused compiler warnings

Change-Id: I018dd19193c812371692226a227cf93a40dc7154

2 years agoCleanup: silence compiler warnings about unused member variables 75/4875/2
Sam White [Thu, 20 Dec 2018 18:51:51 +0000 (12:51 -0600)]
Cleanup: silence compiler warnings about unused member variables

Change-Id: I969f74c27e0a8750c15180605227486c32bbf6ba

2 years agoFix compilation of pup_stl.h by including <random> 74/4874/1
Sam White [Thu, 20 Dec 2018 18:50:41 +0000 (12:50 -0600)]
Fix compilation of pup_stl.h by including <random>

Change-Id: I6a668d436df68537ca5fc5c16fefeed3231b6a37

2 years agoPUPable Random Number Engines 12/4612/4
Nischay Singh [Mon, 24 Sep 2018 21:06:15 +0000 (16:06 -0500)]
PUPable Random Number Engines

C++ 11 provides random number engines and
engine adaptors that are widely used
(presumably in Charm Applications).

This commit adds functionality to PUP
these engines and engine adaptors so that
the user canpreserve the state of these
engines and engine adaptors during the
migration of chares.

The commit makes the following six engines
and engine adaptors in Charm++:

Engines
-linear_congruential_engine(C++11)
-mersenne_twister_engine(C++11)
-subtract_with_carry_engine(C++11)
Engine Adaptors
-discard_block_engine(C++11)
-independent_bits_engine(C++11)
-shuffle_order_engine(C++11)

Read more about these on
https://en.cppreference.com/w/cpp/header/random

Algorithm:
While packing an engine, we extract the
state of the engine (String) and PUP it.
While unpacking, we create a new engine
and feed it the unpacked state (String).

Change-Id: I5a670c92f579ef0a1b807266a2c55dbbe30fc7be

2 years agoCleanup #2028: replace usage of deprecated std::mem_fun with lambdas 97/4797/11
Sam White [Fri, 9 Nov 2018 00:24:57 +0000 (18:24 -0600)]
Cleanup #2028: replace usage of deprecated std::mem_fun with lambdas

This change enables building Charm with -std=c++17.

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

2 years agoDocumentation #1302: Explain how to pass arbitrary arguments to mpiexec via charmrun 72/4872/2
Evan Ramos [Wed, 19 Dec 2018 20:15:51 +0000 (14:15 -0600)]
Documentation #1302: Explain how to pass arbitrary arguments to mpiexec via charmrun

Change-Id: Ic5283c461e4ee3984a4e19a576155171504c7367

2 years agoRemove unused previous ZC EM API code that is causing compilation errors 70/4870/2
Nitin Bhat [Wed, 19 Dec 2018 17:36:30 +0000 (09:36 -0800)]
Remove unused previous ZC EM API code that is causing compilation errors

This commit fixes the gni-cray{xc,xe} autobuild failures.

Change-Id: Ie809de6ca8bfc62593d768544b20208c22465f92

2 years agosupport: handle file rename s/convcore.c/convcore.C/ 51/4851/2
Eric Bohm [Thu, 6 Dec 2018 21:26:37 +0000 (15:26 -0600)]
support: handle file rename s/convcore.c/convcore.C/

Change-Id: If4bdbf59975e0d6d12d44a5717c982044965f88a

2 years agoCleanup #1980: Remove old RDMA API (CkDirect/CmiDirect) from charm and converse 03/4603/9
Nitin Bhat [Fri, 21 Sep 2018 19:47:36 +0000 (19:47 +0000)]
Cleanup #1980: Remove old RDMA API (CkDirect/CmiDirect) from charm and converse

Change-Id: Ic29c5e12d1b802e16be59def2c834285ca98c4b7

2 years agoCleanup #1980: Remove old RDMA API from Converse, netlrts & verbs 62/4662/4
Nitin Bhat [Mon, 8 Oct 2018 16:57:37 +0000 (12:57 -0400)]
Cleanup #1980: Remove old RDMA API from Converse, netlrts & verbs

This patch removes conv-onesided.{h,c} and its dependencies

Change-Id: Ie5449c6d930a6d55f4d6234eac01238bd2bf60c8

2 years agoCleanup #1980: Remove the old pencilfft library and a related example 02/4602/9
Nitin Bhat [Fri, 21 Sep 2018 19:22:07 +0000 (19:22 +0000)]
Cleanup #1980: Remove the old pencilfft library and a related example

Pencilfft library used the CmiDirect Manytomany API. A newer charm fft
library can be used instead of the pencilfft library.

Change-Id: I767eb70673f7d201e4c88d7ebd8ad7e7f4efabba

2 years agoCleanup #1980: Remove CmiDirect ManytoMany API from pami/pamilrts layers 01/4601/11
Nitin Bhat [Fri, 21 Sep 2018 19:19:53 +0000 (19:19 +0000)]
Cleanup #1980: Remove CmiDirect ManytoMany API from pami/pamilrts layers

Change-Id: I77202aa23f41718e5c54d62312bde00498ae59a8

2 years agoCleanup #1980: Remove old RDMA API (CmiDirect) from the verbs layer 00/4600/11
Nitin Bhat [Fri, 21 Sep 2018 19:46:50 +0000 (19:46 +0000)]
Cleanup #1980: Remove old RDMA API (CmiDirect) from the verbs layer

Change-Id: I82a4ca5bead7d4812e01b9e8538c3752c9d5c25b

2 years agoPose: Use standard style for manual title page 66/4866/1
Matthias Diener [Sun, 16 Dec 2018 21:38:49 +0000 (15:38 -0600)]
Pose: Use standard style for manual title page

Change-Id: Ifaa2ac709d89df7f59d6159f674c15f6171fdba1

2 years agoAMPI: small doc fixes 65/4865/1
Matthias Diener [Sat, 15 Dec 2018 22:55:22 +0000 (16:55 -0600)]
AMPI: small doc fixes

Change-Id: Ia713658a8587109767390eaffe0334f61aa70fb2

2 years agoCleanup #1980: Remove old RDMA API (CmiDirect) from the gni layer 99/4599/11
Nitin Bhat [Fri, 21 Sep 2018 19:45:09 +0000 (19:45 +0000)]
Cleanup #1980: Remove old RDMA API (CmiDirect) from the gni layer

Change-Id: I943053aa726c1e86bed47568b98cdab5c02e7537

2 years agoInitialize the uninitialized variable 'firstRdma' in ZC API charmxi code 61/4861/1
Nitin Bhat [Thu, 13 Dec 2018 20:00:15 +0000 (14:00 -0600)]
Initialize the uninitialized variable 'firstRdma' in ZC API charmxi code

This uninitialized variable was storing garbage values on windows builds
and causing erroneous code to be produced by charmxi for the ZC Entry
Method API. This commit fixes the mpi-win & multicore-win autobuild
failures.

Change-Id: I26105f2950be5b82369ef5492acb2750cd4ca578

2 years agoRemove CMK_ONESIDED_DIRECT_IMPL as it is the same as CMK_ONESIDED_IMPL 60/4860/1
Nitin Bhat [Wed, 12 Dec 2018 19:44:51 +0000 (13:44 -0600)]
Remove CMK_ONESIDED_DIRECT_IMPL as it is the same as CMK_ONESIDED_IMPL

With the ZC Entry Method API being internally implemented using the
the ZC Direct API, both the macros are synonymous and there's no need
to have a separate macro for the ZC Direct API.

Change-Id: I31ab7f490bfc03f0409cd599e5d458a882ace82f

2 years agoEnable ZC Direct API for multicore builds to support the refactored ZC EM API 59/4859/2
Nitin Bhat [Wed, 12 Dec 2018 18:42:05 +0000 (12:42 -0600)]
Enable ZC Direct API for multicore builds to support the refactored ZC EM API

This commit removes the unused ZC EM API from multicore builds.
Additionally, this commit resolves the multicore build failure
seen in last night's autobuild.

Error message:
../../../../bin/charmc -g -Werror=vla  -o lbObject.o lbObject.C
/scratch/autobuild/multicore/charm/multicore-linux-x86_64/bin/../lib/libck.a(init.o):
In function `_initCharm(int, char**)':
/scratch/autobuild/multicore/charm/multicore-linux-x86_64/tmp/init.C:1293:
undefined reference to `CmiSetEMNcpyAckHandler'
/scratch/autobuild/multicore/charm/multicore-linux-x86_64/bin/../lib/libck.a(ckrdma.o):
In function `handleReverseEntryMethodApiCompletion(ncpystruct*)':
/scratch/autobuild/multicore/charm/multicore-linux-x86_64/tmp/ckrdma.C:639:
undefined reference to `CmiInvokeRemoteAckHandler'
collect2: error: ld returned 1 exit status

Change-Id: I8b05d7253458cd49d253d112e73e112873f312c2

2 years agoZerocopy EM API: Added examples for each registration mode 29/4529/23
Nitin Bhat [Thu, 30 Aug 2018 17:45:06 +0000 (13:45 -0400)]
Zerocopy EM API: Added examples for each registration mode

Change-Id: I6e9c33e647a27c1721f84ae4c13b8fdb7085c9e0

2 years agoZerocopy API: Add an example with std::vector 59/4559/10
Nitin Bhat [Mon, 10 Sep 2018 16:42:37 +0000 (09:42 -0700)]
Zerocopy API: Add an example with std::vector

Change-Id: I55d83b8d82ce9074538756f519928d772d2b854a

2 years agoZerocopy Entry Method API: use Zerocopy Direct API internally 59/4259/51
Nitin Bhat [Tue, 2 Oct 2018 19:43:52 +0000 (14:43 -0500)]
Zerocopy Entry Method API: use Zerocopy Direct API internally

This patches cleans up all the zerocopy entry method api code and
eliminates the redundant machine layer implementations.
It also gives the Entry Method API already developed capabilities
of the Direct API such as CMA, operation modes and use of pre-registered
buffers.

Change-Id: I6ac812bc31f8c0615ad8cf75ea943620e3495e4f

2 years agoAMPI: correct AMPI_Win_{g,s}et_info tracing names 56/4856/2
Matthias Diener [Mon, 10 Dec 2018 04:40:36 +0000 (22:40 -0600)]
AMPI: correct AMPI_Win_{g,s}et_info tracing names

Change-Id: I44223e645f4ee6f3f35e615fc6700284c5511f1e

2 years agoAMPI #954: update mpich-test to mpich-3.2, add no-op defs of unimplemented features 13/1813/27
Sam White [Sun, 28 Aug 2016 04:11:00 +0000 (23:11 -0500)]
AMPI #954: update mpich-test to mpich-3.2, add no-op defs of unimplemented features

Change-Id: Ice71a89045f0a9b2e24cbeaf1690bc493a762fb4

2 years agoAMPI: make ampif.h compilable as line-extended fixed format 54/4854/4
Sam White [Fri, 7 Dec 2018 15:50:51 +0000 (09:50 -0600)]
AMPI: make ampif.h compilable as line-extended fixed format

Change-Id: I4c4f66d67f0cf38261744405bdc3f95be06f07ba

2 years agoFind ifort's for_main.o on more systems 53/4853/4
Sam White [Fri, 7 Dec 2018 15:27:06 +0000 (09:27 -0600)]
Find ifort's for_main.o on more systems

Change-Id: I1f43f44469ce8e172a2448871c9d32309597a7d8

2 years agoDocumentation: update AMPI's tlsglobals section for Fortran 52/4852/11
Sam White [Fri, 7 Dec 2018 00:31:19 +0000 (18:31 -0600)]
Documentation: update AMPI's tlsglobals section for Fortran

Change-Id: I1b70eb52decf6bdb9e9324af2d078f354fc0ef60

2 years agoAMPI: add more Fortran global/static variables to the privatization test 50/4850/7
Sam White [Thu, 6 Dec 2018 20:13:59 +0000 (14:13 -0600)]
AMPI: add more Fortran global/static variables to the privatization test

Change-Id: Ibd7c89096320cfacccb7d9ec5e27fd9d0015cd93

2 years agoOptimize and cleanup zerocopy/entry_method_api/stencil3d example 19/4819/5
Nitin Bhat [Wed, 21 Nov 2018 19:30:06 +0000 (13:30 -0600)]
Optimize and cleanup zerocopy/entry_method_api/stencil3d example

Previously, the ghost arrays were allocated and deleted for every
iteration. With this commit, they are allocated once in the
constructor and reused for every iteration. This significantly
improves the execution time of the application.

Other changes include removing stray tabs and indenting the code.

Change-Id: I89c1c03adce4ee8ca65f5251c2d29d5d6c803abe

2 years agoCleanup pedantic compiler warning about format specifier 49/4849/1
Sam White [Wed, 5 Dec 2018 15:14:35 +0000 (09:14 -0600)]
Cleanup pedantic compiler warning about format specifier

Change-Id: I2464c55bc266bacee9d30b6d2d2501cee7165dab

2 years agoAMPI: ensure that MPI_Bcast msgs can't be matched to pt2pt requests 89/4789/8
Sam White [Thu, 8 Nov 2018 00:08:21 +0000 (18:08 -0600)]
AMPI: ensure that MPI_Bcast msgs can't be matched to pt2pt requests

- Expose the Amm's pool size to its users so that the pool is minimized
  for the bcast queues.

Change-Id: If744afb5ca4daaa101d0449b856bb4d966c0a910

2 years agoAMPI: make bcast's [nokeep] and reference the msg when unexpected 72/4672/15
Sam White [Tue, 9 Oct 2018 18:33:26 +0000 (13:33 -0500)]
AMPI: make bcast's [nokeep] and reference the msg when unexpected

- [nokeep] means one msg is delivered per PE, rather than one per rank.

- If bcast is expected and in-order, receive can happen straight away.

- If out-of-order or unexpected, we reference the msg, enqueue it, and
  it is processed and freed later upon matching.

Change-Id: I37e6df5ce0c8109662e7400eeb970e305937f65e

2 years agoAMPI: remove redundant worldStruct and lift blockingReq into ampiParent 78/4678/8
Sam White [Wed, 10 Oct 2018 03:23:06 +0000 (22:23 -0500)]
AMPI: remove redundant worldStruct and lift blockingReq into ampiParent

Change-Id: Idc42678eb811f9fbd1e06a7274d1b5151cb75677

2 years agoAMPI: set blockingReq before contributing to a reduction 69/4669/13
Sam White [Tue, 9 Oct 2018 01:50:47 +0000 (20:50 -0500)]
AMPI: set blockingReq before contributing to a reduction

Set ampiParent::resumeOnColl and ampi::blockingReq before contributing
in case completion of the collective happens inline.

Change-Id: I7d52582940d3945bfed73f63abcf24f9119a9fa8

2 years agoAMPI: shrink size of gather(v) and non-commutative redn msgs for comm sizes <64K 41/4841/4
Sam White [Fri, 30 Nov 2018 19:21:53 +0000 (13:21 -0600)]
AMPI: shrink size of gather(v) and non-commutative redn msgs for comm sizes <64K

For communicators with less than or equal to 64K ranks, we can fit the
rank of the contributor into an unsigned short int rather than an int
in the concat reduction msg. This applies to all (I)(All)Gather(v)
calls and all non-commutative reductions.

At its most effective (for a communicator with size 64K), this reduces
the final CkReductionMsg's size by 128KB.

Change-Id: I58024f14bcf861c20e159eea366bfd2ec532d90e

2 years agoAMPI: use concat rather than set reducer for gather(v)-like reductions 67/4667/11
Sam White [Tue, 9 Oct 2018 00:09:29 +0000 (19:09 -0500)]
AMPI: use concat rather than set reducer for gather(v)-like reductions

Use concat for gather, gatherv, and noncommutative reductions. The set
reducer adds unnecessary memory overhead compared to concat, since each
contribution has an int size along with it. For gather's and
noncommutative reductions this is straightforward because the
contribution sizes are all the same, while with gatherv's we add a
separate tuple reduction to keep track of contribution sizes.

Change-Id: Ied154413696c140e4a25325bb7787cab1febaed5

2 years agoTCharm: use FastArrayMap rather than PropMap by default 97/4697/11
Sam White [Tue, 16 Oct 2018 19:59:39 +0000 (14:59 -0500)]
TCharm: use FastArrayMap rather than PropMap by default

- Set static insertion to true and anytime migration to false to get
  FastArrayMap in the default case.

- Clean up print statements at startup about which map is being used.

Change-Id: I77a2bca67f6dd0911f1c51ab6d2f446ef1ef1561

2 years agoAMPI: cleanup AmpiRequestPool implementation and usage 16/4816/6
Sam White [Mon, 19 Nov 2018 00:47:38 +0000 (18:47 -0600)]
AMPI: cleanup AmpiRequestPool implementation and usage

Change-Id: Ib69844e24e8f9b40305411549e5ddef246580889

2 years agoUpdate LRTS template to use Boost fcontext ULTs 31/4831/3
Sam White [Wed, 28 Nov 2018 20:24:13 +0000 (14:24 -0600)]
Update LRTS template to use Boost fcontext ULTs

Change-Id: Id6e00593000cdd56ab27372c211a00bb41959fb3

2 years agoUse an enum for registration modes used in the Zerocopy API 46/4646/2
Nitin Bhat [Tue, 2 Oct 2018 18:54:11 +0000 (14:54 -0400)]
Use an enum for registration modes used in the Zerocopy API

Previously, the registration modes in Converse/Machine layers
were defined as preprocessor directives (macros). Implementing
them as enums is cleaner and more maintainable. The enum could
be converted to a typed enum following the C->C++ conversion.

Change-Id: Ib01272eb863b36444ba63a02778d80fc65157f77

2 years agoAdd a header common to all architectures and machine layers 45/4645/2
Nitin Bhat [Tue, 2 Oct 2018 17:27:48 +0000 (13:27 -0400)]
Add a header common to all architectures and machine layers

The header is src/arch/common/conv-mach-common.h

Change-Id: Ic97f4d6ee57788766668f92df3df7abcc80f3122

2 years agoRemove examples/charm++/load_balancing from bigsim tests 43/4843/1
Nitin Bhat [Mon, 3 Dec 2018 17:43:09 +0000 (11:43 -0600)]
Remove examples/charm++/load_balancing from bigsim tests

Bigsim autobuild has been crashing because of the example failure.
Removing this example will keep the bigsim autobuild smoothly
running until it is entirely deprecated.

Change-Id: I89bd526dc09d8c0df3e3a6ecd7e389e90243bc2a

2 years agoUse () rather than {} for value initialization of Cpv variables 42/4842/2
Jim Phillips [Fri, 30 Nov 2018 20:57:16 +0000 (14:57 -0600)]
Use () rather than {} for value initialization of Cpv variables

Work around bug #2035 xlC not supporting new t[n]{}

Change-Id: I1de8429f8063ea8cc48f71510e28eeeb6d5114ca

2 years agoAdded API to query current reduction number of Group and Array elements 38/4838/5
Juan Galvez [Thu, 29 Nov 2018 22:01:04 +0000 (16:01 -0600)]
Added API to query current reduction number of Group and Array elements

Change-Id: Icb9f96298a2e30e12f70bb931990c7b520c56fd9

3 years agoRemove tests/charm/pingpong from bigsim tests 37/4837/1
Nitin Bhat [Thu, 29 Nov 2018 21:48:18 +0000 (15:48 -0600)]
Remove tests/charm/pingpong from bigsim tests

Recent modifications to test/charm++/pingpong in order to
transition to the new zerocopy API has caused the test to
fail bigsim builds because of improper translation of
CkpvAccess calls. Removing this test will keep the bigsim
autobuild smoothly running until it is entirely deprecated.

Change-Id: Ifdca0ba2d14056b85bbd9d97d30fb8e084a32058

3 years agocharisma-doc: remove illegal characters 36/4836/2
Matthias Diener [Thu, 29 Nov 2018 20:17:13 +0000 (14:17 -0600)]
charisma-doc: remove illegal characters

Change-Id: I8eb985e329488690aaab9267d8a1212e37858f26

3 years agoBug #2032: Fix additional C++ conversion build errors on BG/Q 34/4834/1
Evan Ramos [Thu, 29 Nov 2018 18:46:41 +0000 (12:46 -0600)]
Bug #2032: Fix additional C++ conversion build errors on BG/Q

Change-Id: Iefcae45065062d8512d43728316dc7a8813c6eb0

3 years agoBug #2032: Fix C++ conversion build errors 25/4825/2
Evan Ramos [Tue, 27 Nov 2018 16:42:07 +0000 (10:42 -0600)]
Bug #2032: Fix C++ conversion build errors

Change-Id: Id339d12523accc50e86b3232b2bc99aa56b27746

3 years agoDocumentation: Correct the stated execution context of initproc methods 27/4827/1
Evan Ramos [Tue, 27 Nov 2018 19:20:53 +0000 (13:20 -0600)]
Documentation: Correct the stated execution context of initproc methods

Change-Id: Id6feb80b1b7edc3c9ead83f1b6ba983cbb6977a4

3 years agoOptimize and cleanup examples/charm++/load_balancing/stencil3d 18/4818/5
Nitin Bhat [Wed, 21 Nov 2018 17:49:12 +0000 (11:49 -0600)]
Optimize and cleanup examples/charm++/load_balancing/stencil3d

Previously, the ghost arrays were allocated and deleted for every
iteration. With this commit, they are allocated once in the
constructor and reused for every iteration. This significantly
improves the execution time of the application.

Other changes include removing stray tabs and indenting the code.

Change-Id: I18d7b7fc8d2f0c97e13c8b2e18534e0d1f089802

3 years agoZC Direct API: Pass completion status as the return value for get and put 11/4611/8
Nitin Bhat [Tue, 9 Oct 2018 18:32:24 +0000 (14:32 -0400)]
ZC Direct API: Pass completion status as the return value for get and put

CkNcpyStatus::complete is returned for memcpy and cma transfers
indicating successful completion and CkNcpyStatus::incomplete is
returned for rdma transfers indicating that the data transfer is
in-progress and not necessarily complete.

Change-Id: I7d9bb65dd2473d8d0e1f1e58fb7c2eeb257cd47c

3 years agoFeature #195: Remove ckdirect examples 96/4596/7
Nitin Bhat [Fri, 21 Sep 2018 14:01:06 +0000 (09:01 -0500)]
Feature #195: Remove ckdirect examples

Change-Id: I15b8a9cbb69f0e64dae3768f76a6915e9ec5ada0

3 years agoFeature #195: Delete example which uses older RDMA API: examples/charm++/onesided 95/4595/7
Nitin Bhat [Thu, 20 Sep 2018 22:54:53 +0000 (17:54 -0500)]
Feature #195: Delete example which uses older RDMA API: examples/charm++/onesided

The example illustrates the usage of the older RDMA API by
performing a Put or a Get operation, with or without callbacks.
This is already illustrated in the newer Zerocopy Direct API examples
which can be found in examples/charm++/zerocopy/direct_api. To avoid that
redundancy, I am in favor of deleting this example rather than
resurrecting it with the newer API.

Change-Id: I9528364f1486c284df0c5c66025c6827ce0f90e1

3 years agoFeature #195: Modify old RDMA API usage in tests/charm++/pingpong 94/4594/8
Nitin Bhat [Thu, 20 Sep 2018 22:34:48 +0000 (17:34 -0500)]
Feature #195: Modify old RDMA API usage in tests/charm++/pingpong

The previous CkDirect API was replaced by the new Zerocopy
Direct API which uses CkNcpyBuffers.

Change-Id: Ie38370f17f5030464ba2361499ea8982f425ec5b

3 years agoRename isomalloc.c to isomalloc.C 90/4590/9
Evan Ramos [Mon, 10 Sep 2018 19:14:51 +0000 (14:14 -0500)]
Rename isomalloc.c to isomalloc.C

Change-Id: Iad40c75811f3eb12621730934dc66b0b9c55e1e6

3 years agoClean up C89-style variable declarations in mempool 40/4540/2
Evan Ramos [Thu, 30 Aug 2018 22:57:31 +0000 (17:57 -0500)]
Clean up C89-style variable declarations in mempool

Change-Id: Icb88add5cf137752d0c4115ae8cd8c8b096fe0dc

3 years agoRename mempool.c to mempool.C 39/4539/2
Evan Ramos [Thu, 30 Aug 2018 22:20:54 +0000 (17:20 -0500)]
Rename mempool.c to mempool.C

Change-Id: I4d91cbfee89426f462c8d49deb710282be3ca551

3 years agoApply DEBUG_PRINT cleanup to mempool.c 38/4538/2
Evan Ramos [Thu, 30 Aug 2018 22:26:36 +0000 (17:26 -0500)]
Apply DEBUG_PRINT cleanup to mempool.c

Change-Id: I1f9652e9ac1162eec342cb007760652da663a7d9

3 years agoclang-format the mempool 37/4537/2
Evan Ramos [Thu, 30 Aug 2018 22:18:49 +0000 (17:18 -0500)]
clang-format the mempool

Change-Id: Ibc3f3fdfa9a94f21d48d2d6378dbd189e2fcfe72

3 years agoAdd --with-mempool-cutoff=N to build and configure scripts 94/4394/9
Evan Ramos [Tue, 24 Jul 2018 17:10:07 +0000 (12:10 -0500)]
Add --with-mempool-cutoff=N to build and configure scripts

Change-Id: I6092aa11d6b72c2e26d940de0da98ad6c1630acc

3 years agoFeature #1921: Do not use pooling for large Mempool allocations (>64 MB) 74/1874/52
Nikhil Jain [Fri, 23 Sep 2016 22:59:54 +0000 (17:59 -0500)]
Feature #1921: Do not use pooling for large Mempool allocations (>64 MB)

This lessens the amount of physical memory fragmentation/waste for
Mempool and for Isomalloc when it uses Mempool (this is the default).

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

3 years agoApply minor cleanup to mempool 21/4321/40
Evan Ramos [Mon, 4 Jun 2018 21:29:06 +0000 (16:29 -0500)]
Apply minor cleanup to mempool

Change-Id: I9fb2f54826a2c5909aa9674327ca0c0d37fb2212

3 years agoFeature #1184: Use std::atomic_int for CmiReference / CmiFree 08/4108/29
Evan Ramos [Wed, 2 May 2018 20:38:41 +0000 (15:38 -0500)]
Feature #1184: Use std::atomic_int for CmiReference / CmiFree

Change-Id: I53e944e1b9eb3bc443d94ea06685e882a7bfce9f

3 years agoRename {convcore,debug-conv}.c to .C 42/4142/26
Evan Ramos [Mon, 7 May 2018 20:53:35 +0000 (15:53 -0500)]
Rename {convcore,debug-conv}.c to .C

Change-Id: I0c3ae5c679a4901db3496c107c5ddd7e9fa76d9e

3 years agocharmc: avoid error messages about charmrun during parallel builds 93/4793/3
Sam White [Thu, 8 Nov 2018 20:04:37 +0000 (14:04 -0600)]
charmc: avoid error messages about charmrun during parallel builds

Change-Id: If0910eefa4a882e028147a1b0427ec51c93f0259