Skip to content

Commit b7cfc24

Browse files
authored
Increase ARGO_VM_START to resolve PMIx conflict (#152)
* Increase ARGO_VM_START to resolve PMIx conflict Increase the ARGO_VM_START address in order to avoid a shared memory conflict with PMIx in newer OpenMPI versions (#151). As a result, ARGO_VM_SIZE is reduced to ensure that the end of the ArgoDSM virtual memory reservation remains unchanged. * Fix cpplint issue
1 parent fcd7184 commit b7cfc24

2 files changed

Lines changed: 11 additions & 7 deletions

File tree

src/data_distribution/first_touch_distribution.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ void first_touch_distribution<instance>::first_touch(const std::size_t& addr) {
272272
/* iterate through the nodes to find a valid offset for the page, starting from the currently running one */
273273
bool succeeded = false;
274274
std::size_t n, searched;
275-
for(n = rank, searched = 0; searched < static_cast<std::size_t>(base_distribution<instance>::nodes);
275+
for (n = rank, searched = 0; searched < static_cast<std::size_t>(base_distribution<instance>::nodes);
276276
n = (n + 1) % base_distribution<instance>::nodes, searched++) {
277277
/* load backing offset for the node from the offsets table */
278278
argo::backend::atomic::_load_local_offsets_tbl(&offset, rank, n);
@@ -281,7 +281,11 @@ void first_touch_distribution<instance>::first_touch(const std::size_t& addr) {
281281
/* try to claim a valid offset */
282282
const std::size_t incr_offset = offset + granularity;
283283
argo::backend::atomic::_compare_exchange_offsets_tbl(&incr_offset, &offset, &result, sizeof(std::size_t), n, n);
284-
if (result == offset) { succeeded = true; homenode = n; break; }
284+
if (result == offset) {
285+
succeeded = true;
286+
homenode = n;
287+
break;
288+
}
285289
offset = result;
286290
}
287291
/* cache the offset returned from a remote CAS operation */

src/virtual_memory/vm_limits.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,20 @@
1111
* @brief The start of the ArgoDSM virtual memory space
1212
* @note This value assumes x86_64 architecture
1313
*
14-
* The ArgoDSM virtual memory space leaves the first 1/6 for local use.
14+
* The ArgoDSM virtual memory space leaves the lower part for local use.
1515
*/
16-
char* const ARGO_VM_START = reinterpret_cast<char*>(0x155555554000l);
16+
char* const ARGO_VM_START = reinterpret_cast<char*>(0x355555554000l);
1717

1818
/**
1919
* @brief The maximum size of the ArgoDSM virtual memory space
2020
* @note This value assumes x86_64 architecture
2121
*
22-
* ArgoDSM reserves up to half of the available user-space virtual memory. A
23-
* particular VM implementation may choose to reserve less than this number.
22+
* ArgoDSM reserves up to a quarter of the available user-space virtual memory.
23+
* A particular VM implementation may choose to reserve less than this number.
2424
* In combination with @ref ARGO_VM_START this ensures that the final third
2525
* of the virtual memory is left for PIE loads, heap, shared libraries and
2626
* the stack among other things.
2727
*/
28-
constexpr ptrdiff_t ARGO_VM_SIZE = 0x400000000000l;
28+
constexpr ptrdiff_t ARGO_VM_SIZE = 0x200000000000l;
2929

3030
#endif // ARGODSM_SRC_VIRTUAL_MEMORY_VM_LIMITS_HPP_

0 commit comments

Comments
 (0)