Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v21: Build: port to cmake #12

Open
wants to merge 17 commits into
base: v21
Choose a base branch
from
Open

v21: Build: port to cmake #12

wants to merge 17 commits into from

Conversation

omor1
Copy link
Member

@omor1 omor1 commented May 1, 2020

Ported build system to CMake for the v21 branch. Most difficulties were in figuring out what changed between v2 and v21 in terms of naming (e.g. some, but not all config parameters went from LC_XXXX to LCI_XXXX) and due to the fact that comet only has CMake 3.12 rather than 3.13+.

The make-based build system still works, as best I can tell.

omor1 and others added 17 commits April 30, 2020 17:41
update .gitignore to ignore various CLion configuration files
… >= 3.13

Explicitly set the cmake policy CMP0076 to NEW.
Explicitly specify the abosolute path for generator expression because CMP0076 doesn't modify generator expression.
…ator expressions when cmake <= 3.12

The previous proposed fix prepend ${CMAKE_CURRENT_SOURCE_DIR} to all the file paths including generator expressions, which is inconsistent with the behavior of CWP00076.
This commit fixes this problem.
v21-cmake: fix CWP0076 related bug -- version 2
…s; heap overflow; enable ep

(1) fix two outdated header paths. (2) The OFI backend needs at least 8192 +
LC_SERVER_NUM_PKTS(1024) * LC_PACKET_SIZE(32 * 1024 + 4096) ~= 36MB memory per device, but the
previous CMakeLists only gives it LCI_DEV_MEM_SIZE (8MB) memory. The new fix set it to 64MB. (3) you
need to call fi_enable(ep) first before calling fi_getname()
LCI is built on PMIv1 wire protocol but PMIv2 API, so the underlying system should provide PMI2 shared library (libpmi2.so or libpmi.so on some Cray machine) for LCI.

Users need to select PMI/PMI2 when compiling LCI with the cmake option `LCI_USE_PMI2`. If LCI cannot find libpmi2.so/libpmi.so, it will switch back to PMIv1.

LCI_PM_Barrier() is broken with PMI2
…y on external libpmi2.so

borrow the PMI2 client code from slurm github repo
…ples with lci_shared; add extern to variables in lci.h.
ibv finalizes PMI in its lc_server_finalize function. It breaks the following LCI_barrier.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants