diff --git a/README.md b/README.md index d10d051d..cc49deba 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ make install - `ofi`: libfabrics, for all other networks (slingshot-11, ethernet, shared memory). - `LCI_FORCE_SERVER=ON/OFF`: Default value is `OFF`. If it is set to `ON`, `LCI_SERVER` will not be treated as a hint but a requirement. -- `LCI_WITH_LCT_ONLY=ON/OFF`: Whether to only build LCT (The Lightweight COmmunication Tools). +- `LCI_WITH_LCT_ONLY=ON/OFF`: Whether to only build LCT (The Lightweight Communication Tools). Default is `OFF` (build both LCT and LCI). ## Run LCI applications diff --git a/contrib/spack/packages/lci/package.py b/contrib/spack/packages/lci/package.py index 0ab499ac..943418c0 100644 --- a/contrib/spack/packages/lci/package.py +++ b/contrib/spack/packages/lci/package.py @@ -74,7 +74,8 @@ def is_positive_int(val): variant('papi', default=False, description='Use PAPI to collect hardware counters') variant('gprof', default=False, description='Enable GPROF') - variant('enable-pmix', default=True, description='Enable PMIx as the process management backend') + variant('enable-pmix', default='auto', values=is_positive_int, + description='Enable PMIx as the process management backend') generator("ninja", "make", default="ninja") @@ -110,9 +111,12 @@ def cmake_args(self): self.define_from_variant('LCI_ENABLE_SLOWDOWN', 'debug-slow'), self.define_from_variant('LCI_USE_PAPI', 'papi'), self.define_from_variant('LCI_USE_GPROF', 'gprof'), - self.define_from_variant('LCT_PMI_BACKEND_ENABLE_PMIX', 'enable-pmix'), ] + if self.spec.variants['enable-pmix'].value != 'auto': + arg = self.define_from_variant('LCT_PMI_BACKEND_ENABLE_PMIX', 'enable-pmix') + args.append(arg) + if self.spec.variants['cache-line'].value != 'auto': arg = self.define_from_variant('LCI_CACHE_LINE', 'cache-line') args.append(arg) diff --git a/lci/runtime/lcii.h b/lci/runtime/lcii.h index 64d4c8ab..130c8a8d 100644 --- a/lci/runtime/lcii.h +++ b/lci/runtime/lcii.h @@ -69,8 +69,8 @@ struct __attribute__((aligned(LCI_CACHE_LINE))) LCI_device_s { LCII_rcache_t rcache; // 8B LCI_lbuffer_t heap; // 24B uintptr_t base_packet; // 8B - LCIU_CACHE_PADDING(sizeof(LCIS_server_t) + 2 * sizeof(LCIS_endpoint_t) - - sizeof(LCII_pool_t*) + sizeof(LCI_matchtable_t) - + LCIU_CACHE_PADDING(sizeof(LCIS_server_t) + 2 * sizeof(LCIS_endpoint_t) + + sizeof(LCII_pool_t*) + sizeof(LCI_matchtable_t) + sizeof(LCII_rcache_t*) + sizeof(LCI_lbuffer_t) + sizeof(uintptr_t)); // the following is shared by both progress threads and worker threads