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

The new LCI parcelport for HPX #5715

Merged
merged 1 commit into from
Mar 29, 2022
Merged

Conversation

JiakunYan
Copy link
Contributor

@JiakunYan JiakunYan commented Dec 18, 2021

About

Add a new parcelport (LCI) for HPX. (Still a work in progress)

Background

The Lightweight Communication Interface (LCI) is designed to be a low-level communication library used by high-level libraries and frameworks. It aims to support irregular and asynchronous applications such as graph analysis, sparse linear algebra, and task-based runtime on modern parallel architectures. Major features include (a) support for more communication primitives such as two-sided send/recv and one-sided (dynamic or direct) remote put (b) better multi-threaded performance (c) explicit user control of communication resource (d) flexible signaling mechanisms such as synchronizer, completion queue, and active message handler. It is an ongoing research project (https://github.com/uiuc-hpc/LC).

Checklist

Completed

  • basic parcelport code development for a naive implementation.
  • basic cmake system support for LCI parcelport.
  • HPX_WITH_FETCH_LCI: cmake fetchcontent support for LCI parcelport
  • Jenkin test scripts (lsu cluster with infiniband) for LCI.

Known Issues

  • HPX_WITH_FETCH_LCI does not work with HPX_WITH_PKGCONFIG=ON

@jenkins-cscs
Copy link
Collaborator

Can one of the admins verify this patch?

@hkaiser
Copy link
Member

hkaiser commented Dec 18, 2021

add to whitelist

@hkaiser
Copy link
Member

hkaiser commented Dec 18, 2021

@JiakunYan Thanks for working on this! This is a major step forward in terms of supporting modern networking infrastructures.

We just majorly restructured the HPX repository. It has been split into two parts (this repository and https://github.com/STEllAR-GROUP/hpx-local). Please give me a day or two to rebase your PR onto current master (that will involve force-pushing to your branch). While doing so, I will also apply some reformatting changes (cmake-format and clang-format based) to make our CI checks happy.

@hkaiser
Copy link
Member

hkaiser commented Dec 18, 2021

@JiakunYan I have created a PR against your base branch here: uiuc-hpc#1. This might require some manual intervention. I think the best would be if you replaced your base branch with https://github.com/hkaiser/hpx/tree/hpx-lci, that contains all of your changes.

@JiakunYan
Copy link
Contributor Author

@hkaiser Thanks! I have done it. Continue working on debugging HPX_WITH_FETCH_LCI now.

@hkaiser
Copy link
Member

hkaiser commented Dec 20, 2021

@hkaiser Thanks! I have done it. Continue working on debugging HPX_WITH_FETCH_LCI now.

That worked for me. Do you still have issues with this setting?

@hkaiser
Copy link
Member

hkaiser commented Dec 20, 2021

BTW, I simply disabled PGKCONFIG if LCI is enabled. I think that's acceptable as we know it's a cmake issue and there might not be a proper workaround.

@JiakunYan
Copy link
Contributor Author

@hkaiser Thanks! I have done it. Continue working on debugging HPX_WITH_FETCH_LCI now.

That worked for me. Do you still have issues with this setting?

There are some errors when building tests for HPX. For the old version, I got the following error:

[1783/1897] cd /home/jiakun/workspace/hpx-scripts/rostam/test/init/build/tests/unit/build && /opt/apps/cmake/3.22.0/bin/ctest --build-and-test /home/jiakun/workspace/hpx/examples/hello_world_component /home/jiakun/workspace/hpx-scripts/rostam/test/init/build/tests/unit/build/cmake_relwithdebinfo_build_dir_targets_test --build-generator Ninja --build-noclean --build-options -DHPX_DIR=/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/lib/cmake/HPX -DBOOST_ROOT=/opt/apps/gcc11/boost/1.78.0/release -DSETUP_TYPE=TARGETS -DCMAKE_CXX_COMPILER=/opt/apps/gcc/11.2.0/bin/g++ -DCMAKE_CXX_FLAGS= -DCMAKE_BUILD_TYPE=RelWithDebInfo --test-command /opt/apps/cmake/3.22.0/bin/ctest --output-on-failure
FAILED: tests/unit/build/CMakeFiles/cmake_relwithdebinfo_build_dir_targets_test /home/jiakun/workspace/hpx-scripts/rostam/test/init/build/tests/unit/build/CMakeFiles/cmake_relwithdebinfo_build_dir_targets_test 
cd /home/jiakun/workspace/hpx-scripts/rostam/test/init/build/tests/unit/build && /opt/apps/cmake/3.22.0/bin/ctest --build-and-test /home/jiakun/workspace/hpx/examples/hello_world_component /home/jiakun/workspace/hpx-scripts/rostam/test/init/build/tests/unit/build/cmake_relwithdebinfo_build_dir_targets_test --build-generator Ninja --build-noclean --build-options -DHPX_DIR=/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/lib/cmake/HPX -DBOOST_ROOT=/opt/apps/gcc11/boost/1.78.0/release -DSETUP_TYPE=TARGETS -DCMAKE_CXX_COMPILER=/opt/apps/gcc/11.2.0/bin/g++ -DCMAKE_CXX_FLAGS= -DCMAKE_BUILD_TYPE=RelWithDebInfo --test-command /opt/apps/cmake/3.22.0/bin/ctest --output-on-failure
Internal cmake changing into directory: /home/jiakun/workspace/hpx-scripts/rostam/test/init/build/tests/unit/build/cmake_relwithdebinfo_build_dir_targets_test
Error: cmake execution failed
The CXX compiler identification is GNU 11.2.0
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Check for working CXX compiler: /opt/apps/gcc/11.2.0/bin/g++ - skipped
Detecting CXX compile features
Detecting CXX compile features - done
Looking for C++ include pthread.h
Looking for C++ include pthread.h - found
Performing Test CMAKE_HAVE_LIBC_PTHREAD
Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
Looking for pthread_create in pthreads
Looking for pthread_create in pthreads - not found
Looking for pthread_create in pthread
Looking for pthread_create in pthread - found
Found Threads: TRUE  
CMake Error at /opt/apps/cmake/3.22.0/share/cmake-3.22/Modules/CMakeFindDependencyMacro.cmake:47 (find_package):
  By not providing "FindFabric.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Fabric", but
  CMake did not find one.

  Could not find a package configuration file provided by "Fabric" with any
  of the following names:

    FabricConfig.cmake
    fabric-config.cmake

  Add the installation prefix of "Fabric" to CMAKE_PREFIX_PATH or set
  "Fabric_DIR" to a directory containing one of the above files.  If "Fabric"
  provides a separate development package or SDK, be sure it has been
  installed.
Call Stack (most recent call first):
  /home/jiakun/workspace/hpx-scripts/rostam/test/init/build/lib/cmake/HPX/HPXConfig.cmake:33 (find_dependency)
  CMakeLists.txt:12 (find_package)

For the new version, I got the following error:

[610/1939] Building CXX object _deps/hpxlocal-build/libs/core/async_mpi/tests/unit/CMakeFiles/algorithm_transform_mpi_test.dir/algorithm_transform_mpi.cpp.o
FAILED: _deps/hpxlocal-build/libs/core/async_mpi/tests/unit/CMakeFiles/algorithm_transform_mpi_test.dir/algorithm_transform_mpi.cpp.o 
/opt/apps/gcc/11.2.0/bin/g++ -DHPX_APPLICATION_NAME=algorithm_transform_mpi_test -DHPX_APPLICATION_STRING=\"algorithm_transform_mpi_test\" -DHPX_DEBUG -D_GNU_SOURCE -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/affinity/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/affinity/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/affinity/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/assertion/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/assertion/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/assertion/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/config_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/config_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/preprocessor/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/preprocessor/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/preprocessor/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/config_registry/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/config_registry/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/datastructures/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/datastructures/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/datastructures/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/concepts/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/concepts/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/concepts/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/type_support/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/type_support/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/type_support/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/errors/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/errors/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/errors/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/filesystem/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/filesystem/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/filesystem/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/format/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/format/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/format/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/logging/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/logging/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/logging/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/timing/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/timing/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/timing/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/hardware/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/hardware/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/hardware/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/thread_support/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/thread_support/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/thread_support/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/topology/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/topology/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/topology/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/concurrency/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/concurrency/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/concurrency/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/execution_base/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/execution_base/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/execution_base/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/functional/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/functional/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/functional/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/debugging/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/debugging/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/debugging/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/itt_notify/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/itt_notify/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/itt_notify/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/serialization/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/serialization/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/serialization/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/hashing/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/hashing/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/hashing/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/tag_invoke/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/tag_invoke/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/tag_invoke/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/iterator_support/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/iterator_support/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/iterator_support/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/lock_registration/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/lock_registration/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/util/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/util/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/util/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/algorithms/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/algorithms/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/algorithms/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/async_combinators/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/async_combinators/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/async_combinators/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/async_base/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/async_base/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/async_base/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/allocator_support/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/allocator_support/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/allocator_support/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/coroutines/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/coroutines/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/coroutines/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/memory/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/memory/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/futures/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/futures/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/futures/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/synchronization/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/synchronization/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/synchronization/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/threading_base/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/threading_base/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/threading_base/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/pack_traversal/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/pack_traversal/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/pack_traversal/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/async_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/async_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/execution/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/execution/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/execution/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/threading/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/threading/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/threading/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/executors/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/executors/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/executors/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/io_service/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/io_service/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/io_service/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/properties/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/properties/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/lcos_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/lcos_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/lcos_local/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/asio/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/asio/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/asio/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/async_mpi/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/async_mpi/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/mpi_base/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/mpi_base/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/runtime_configuration/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/runtime_configuration/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/runtime_configuration/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/program_options/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/program_options/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/plugin/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/plugin/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/plugin/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/ini/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/ini/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/string_util/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/string_util/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/prefix/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/prefix/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/prefix/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/version_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/version_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/runtime_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/runtime_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/runtime_local/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/command_line_handling_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/command_line_handling_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/resource_partitioner/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/resource_partitioner/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/resource_partitioner/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/thread_pools/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/thread_pools/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/thread_pools/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/schedulers/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/schedulers/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/schedulers/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/static_reinit/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/static_reinit/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/static_reinit/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/threadmanager/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/threadmanager/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/threadmanager/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/thread_pool_util/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/thread_pool_util/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/batch_environments/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/batch_environments/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/batch_environments/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/cache/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/cache/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/cache/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/include_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/include_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/init_runtime_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/init_runtime_local/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/testing/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/testing/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/testing/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/resiliency/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/resiliency/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/timed_execution/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/timed_execution/include -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-build/libs/core/timed_execution/include_compatibility -I/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/execution/tests/include -isystem /opt/apps/gcc11/boost/1.78.0/release -isystem /home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/asio-src/asio/include -isystem /opt/apps/hwloc/2.6.0/include -isystem /opt/apps/gcc11/openmpi/4.1.2/openmpi/4.1.2/include -g -pthread -Wall -Wextra -Wpedantic -Wno-strict-aliasing -Wno-sign-promo -Wno-attributes -Wno-cast-align -Wno-noexcept-type -Wformat=2 -Wno-format-nonliteral -Winit-self -Wdouble-promotion -Wcast-qual -Wcast-align -Werror=trampolines -Werror=parentheses -Werror=reorder -Werror=return-type -Werror=sequence-point -Werror=uninitialized -Werror=format -Werror=missing-braces -Werror=sign-compare -fdiagnostics-show-option -Werror=vla -Wno-unused-but-set-parameter -Wno-unused-but-set-variable -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-sync-nand -Wno-delete-non-virtual-dtor -fvisibility=hidden -std=c++17 -MD -MT _deps/hpxlocal-build/libs/core/async_mpi/tests/unit/CMakeFiles/algorithm_transform_mpi_test.dir/algorithm_transform_mpi.cpp.o -MF _deps/hpxlocal-build/libs/core/async_mpi/tests/unit/CMakeFiles/algorithm_transform_mpi_test.dir/algorithm_transform_mpi.cpp.o.d -o _deps/hpxlocal-build/libs/core/async_mpi/tests/unit/CMakeFiles/algorithm_transform_mpi_test.dir/algorithm_transform_mpi.cpp.o -c /home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/async_mpi/tests/unit/algorithm_transform_mpi.cpp
/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/async_mpi/tests/unit/algorithm_transform_mpi.cpp:7:10: fatal error: hpx/hpx_init.hpp: No such file or directory
    7 | #include <hpx/hpx_init.hpp>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.

The scripts I was running can be found here: https://github.com/JiakunYan/hpx-scripts/tree/main/rostam/test

./init-debug-autofetch.sh
./run.sh # in the script, make sure TASKS=("build_test.slurm")

@hkaiser
Copy link
Member

hkaiser commented Dec 20, 2021

@JiakunYan this error is unrelated and a problem caused by our recent refactoring. The pgkconfig problems the CI shows seem to be unrelated to your PR as well. We will take care of this.

Could you please have a look at the cmake-format and clang-format issues (see: here and here)?

@JiakunYan
Copy link
Contributor Author

@JiakunYan this error is unrelated and a problem caused by our recent refactoring. The pgkconfig problems the CI shows seem to be unrelated to your PR as well. We will take care of this.

Could you please have a look at the cmake-format and clang-format issues (see: here and here)?

It seems I don't have access to the two links you mentioned

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>Request has expired</Message>
<X-Amz-Expires>59</X-Amz-Expires>
<Expires>2021-12-20T21:34:18Z</Expires>
<ServerTime>2021-12-20T21:37:21Z</ServerTime>
<RequestId>RSK36314Y4TJN8YY</RequestId>
<HostId>/fSJQ6GMEwaK6XKnoQnKzUPjS86my7WlL/g2eghhBfvIMw8dv1h/c4c+O+z7iKpv/iXTY4a5oZU=</HostId>
</Error>
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>Request has expired</Message>
<X-Amz-Expires>60</X-Amz-Expires>
<Expires>2021-12-20T21:33:40Z</Expires>
<ServerTime>2021-12-20T21:37:24Z</ServerTime>
<RequestId>DZ8PZFR9A21CNCXP</RequestId>
<HostId>tDUNbHpPrKWJQS3kxIMu+7S5vRYUwwYHp4HUu9xb7u7scWbgpR3BHG1jGXzvLNF+d5hVgb/HYb4=</HostId>
</Error>

@hkaiser
Copy link
Member

hkaiser commented Dec 20, 2021

@JiakunYan this error is unrelated and a problem caused by our recent refactoring. The pgkconfig problems the CI shows seem to be unrelated to your PR as well. We will take care of this.
Could you please have a look at the cmake-format and clang-format issues (see: here and here)?

It seems I don't have access to the two links you mentioned

Here are the files:

clang-format problem:

diff --git a/libs/full/lci_base/src/lci_environment.cpp b/libs/full/lci_base/src/lci_environment.cpp
index c148729..5545908 100644
--- a/libs/full/lci_base/src/lci_environment.cpp
+++ b/libs/full/lci_base/src/lci_environment.cpp
@@ -7,8 +7,8 @@
 
 #include <hpx/config.hpp>
 
-#include <hpx/modules/logging.hpp>
 #include <hpx/modules/lci_base.hpp>
+#include <hpx/modules/logging.hpp>
 #include <hpx/modules/runtime_configuration.hpp>
 #include <hpx/modules/util.hpp>

cmake-format problem:

diff --git a/cmake/HPX_AddTest.cmake b/cmake/HPX_AddTest.cmake
index 0232b6f..38cb626 100644
--- a/cmake/HPX_AddTest.cmake
+++ b/cmake/HPX_AddTest.cmake
@@ -159,12 +159,12 @@ function(add_hpx_test category name)
       if(_add_test)
         set(_full_name "${category}.distributed.lci.${name}")
         add_test(NAME "${_full_name}" COMMAND ${cmd} "-p" "lci" "-r" "mpi"
-                ${args}
-                )
+                                              ${args}
+        )
         set_tests_properties("${_full_name}" PROPERTIES RUN_SERIAL TRUE)
         if(${name}_TIMEOUT)
           set_tests_properties(
-                  "${_full_name}" PROPERTIES TIMEOUT ${${name}_TIMEOUT}
+            "${_full_name}" PROPERTIES TIMEOUT ${${name}_TIMEOUT}
           )
         endif()
       endif()
diff --git a/cmake/HPX_SetupHPXLocal.cmake b/cmake/HPX_SetupHPXLocal.cmake
index cb34b8e..d8e06a6 100644
--- a/cmake/HPX_SetupHPXLocal.cmake
+++ b/cmake/HPX_SetupHPXLocal.cmake
@@ -188,7 +188,10 @@ elseif(NOT TARGET HPX::hpx_local AND NOT HPX_FIND_PACKAGE)
   if(MSVC AND NOT DEFINED HPXLocal_WITH_BINARY_DIR)
     set(HPXLocal_WITH_BINARY_DIR
         "${PROJECT_BINARY_DIR}"
-        CACHE STRING "Binary directory for local should be the same as for full library" FORCE
+        CACHE
+          STRING
+          "Binary directory for local should be the same as for full library"
+          FORCE
     )
   endif()
 
diff --git a/plugins/parcelport/lci/CMakeLists.txt b/plugins/parcelport/lci/CMakeLists.txt
index a6af5e2..6b305e5 100644
--- a/plugins/parcelport/lci/CMakeLists.txt
+++ b/plugins/parcelport/lci/CMakeLists.txt
@@ -25,8 +25,14 @@ if(HPX_WITH_NETWORKING AND HPX_WITH_PARCELPORT_LCI)
       "${PROJECT_SOURCE_DIR}/hpx/plugins/parcelport/lci/sender.hpp"
       "${PROJECT_SOURCE_DIR}/hpx/plugins/parcelport/lci/sender_connection.hpp"
       "${PROJECT_SOURCE_DIR}/hpx/plugins/parcelport/lci/tag_provider.hpp"
-    DEPENDENCIES hpx_actions hpx_command_line_handling hpx_config hpx_lci_base
-                 hpx_dependencies_boost Mpi::mpi LCI::LCI
+    DEPENDENCIES
+      hpx_actions
+      hpx_command_line_handling
+      hpx_config
+      hpx_lci_base
+      hpx_dependencies_boost
+      Mpi::mpi
+      LCI::LCI
     INCLUDE_DIRS ${PROJECT_SOURCE_DIR}
     FOLDER "Core/Plugins/Parcelport/LCI"
   )

@hkaiser
Copy link
Member

hkaiser commented Dec 21, 2021

@msimberg the problems related to pkgconfig seem to be a leftover from the repository split. Would you mind having a look?

@hkaiser
Copy link
Member

hkaiser commented Jan 4, 2022

@JiakunYan I would like to get back to this as soon as possible. Is there anything I can help to move this forward?

@JiakunYan
Copy link
Contributor Author

@hkaiser Apologize! For the last two weeks, I was busy with other things (holiday, of course, and some qual exam related stuff) and was slow on this project. I shall get back in one week.

You mentioned that some tests were broken on Rostam due to recent refactoring. Have those tests been fixed now? It doesn't feel good to do major code development without being able to test its correctness.

@hkaiser
Copy link
Member

hkaiser commented Jan 5, 2022

@hkaiser Apologize! For the last two weeks, I was busy with other things (holiday, of course, and some qual exam related stuff) and was slow on this project. I shall get back in one week.

You mentioned that some tests were broken on Rostam due to recent refactoring. Have those tests been fixed now? It doesn't feel good to do major code development without being able to test its correctness.

@JiakunYan I didn't mean to put any pressure on you, rather was trying to help. The rostam changes should be in place very soon, so next week is perfect. Thanks!

@JiakunYan
Copy link
Contributor Author

@JiakunYan I didn't mean to put any pressure on you, rather was trying to help. The rostam changes should be in place very soon, so next week is perfect. Thanks!

@hkaiser Thank you! Once the fix is in place, it would be great if you could help me rebase the current branch onto the master branch.

@hkaiser
Copy link
Member

hkaiser commented Jan 9, 2022

@JiakunYan I didn't mean to put any pressure on you, rather was trying to help. The rostam changes should be in place very soon, so next week is perfect. Thanks!

@hkaiser Thank you! Once the fix is in place, it would be great if you could help me rebase the current branch onto the master branch.

@JiakunYan: Please see uiuc-hpc#2 for the rebase.

@msimberg
Copy link
Contributor

@msimberg the problems related to pkgconfig seem to be a leftover from the repository split. Would you mind having a look?

The error is unrelated to the split. It's triggered by this line not having CXX anymore:

project(HPX)
. I don't know why removing it triggers that error, but I don't think the line should be changed. @JiakunYan is that change intentional or unrelated?

@JiakunYan
Copy link
Contributor Author

@msimberg the problems related to pkgconfig seem to be a leftover from the repository split. Would you mind having a look?

The error is unrelated to the split. It's triggered by this line not having CXX anymore:

project(HPX)

. I don't know why removing it triggers that error, but I don't think the line should be changed. @JiakunYan is that change intentional or unrelated?

It is intentional. Without removing CXX, find_package(MPI) will not give me MPI::MPI_C. LCI needs to link to the C version of MPI library. Do you have a workaround for it?

@msimberg
Copy link
Contributor

msimberg commented Jan 14, 2022

It is intentional. Without removing CXX, find_package(MPI) will not give me MPI::MPI_C. LCI needs to link to the C version of MPI library. Do you have a workaround for it?

Possibly find_package(MPI COMPONENTS C) or

enable_language(C)
find_package(MPI)

if you're not already explicitly asking for the C component when finding MPI, but I don't know if that's going to lead to the same errors in the pkgconfig file generation.

@JiakunYan
Copy link
Contributor Author

@msimberg Thanks! I will try them.

@JiakunYan
Copy link
Contributor Author

@JiakunYan: Please see uiuc-hpc#2 for the rebase.

Is the fix in place now? I am still seeing some errors on Rostam when building the tests.

[598/1939] Building CXX object _deps/hpxlocal-build/libs/core/async_mpi/tests/unit/CMakeFiles/algorithm_transform_mpi_test.dir/algorithm_transform_mpi.cpp.o
FAILED: _deps/hpxlocal-build/libs/core/async_mpi/tests/unit/CMakeFiles/algorithm_transform_mpi_test.dir/algorithm_transform_mpi.cpp.o
/opt/apps/gcc/11.2.0/bin/g++ -DHPX_APPLICATION_NAME=algorithm_transform_mpi_test -DHPX_APPLICATION_STRING="algorithm_transform_mpi_test" -DHPX_DEBUG -D_GNU_SOURCE -I(omitting a bunch of include paths) -isystem /opt/apps/gcc11/boost/1.78.0/release -isystem /home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/asio-src/asio/include -isystem /opt/apps/hwloc/2.6.0/include -isystem /opt/apps/gcc11/openmpi/4.1.2/openmpi/4.1.2/include -g -pthread -Wall -Wextra -Wpedantic -Wno-strict-aliasing -Wno-sign-promo -Wno-attributes -Wno-cast-align -Wno-noexcept-type -Wformat=2 -Wno-format-nonliteral -Winit-self -Wdouble-promotion -Wcast-qual -Wcast-align -Werror=trampolines -Werror=parentheses -Werror=reorder -Werror=return-type -Werror=sequence-point -Werror=uninitialized -Werror=format -Werror=missing-braces -Werror=sign-compare -fdiagnostics-show-option -Werror=vla -Wno-unused-but-set-parameter -Wno-unused-but-set-variable -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-sync-nand -Wno-delete-non-virtual-dtor -fvisibility=hidden -std=c++17 -MD -MT _deps/hpxlocal-build/libs/core/async_mpi/tests/unit/CMakeFiles/algorithm_transform_mpi_test.dir/algorithm_transform_mpi.cpp.o -MF _deps/hpxlocal-build/libs/core/async_mpi/tests/unit/CMakeFiles/algorithm_transform_mpi_test.dir/algorithm_transform_mpi.cpp.o.d -o _deps/hpxlocal-build/libs/core/async_mpi/tests/unit/CMakeFiles/algorithm_transform_mpi_test.dir/algorithm_transform_mpi.cpp.o -c /home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/async_mpi/tests/unit/algorithm_transform_mpi.cpp
/home/jiakun/workspace/hpx-scripts/rostam/test/init/build/_deps/hpxlocal-src/libs/core/async_mpi/tests/unit/algorithm_transform_mpi.cpp:7:10: fatal error: hpx/hpx_init.hpp: No such file or directory
7 | #include <hpx/hpx_init.hpp>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.

Is this a leftover bug of the split?

@JiakunYan
Copy link
Contributor Author

Possibly find_package(MPI COMPONENTS C) or

enable_language(C)
find_package(MPI)

if you're not already explicitly asking for the C component when finding MPI, but I don't know if that's going to lead to the same errors in the pkgconfig file generation.

I tested it.

If I set project(HPX CXX), enable_language(C) is required for find_package(MPI) to find MPI::MPI_C. After adding enable_language(C), the pkgconfig generator complained.

@msimberg
Copy link
Contributor

I tested it.

If I set project(HPX CXX), enable_language(C) is required for find_package(MPI) to find MPI::MPI_C. After adding enable_language(C), the pkgconfig generator complained.

All right, thanks for checking. Unfortunately I don't have an workarounds in mind. We know that the pkgconfig file generation is problematic (and has been for a while). @hkaiser I'll leave this up to you. I suppose you can always force HPX_WITH_PKGCONFIG=OFF with the LCI parcelport enabled.

@hkaiser
Copy link
Member

hkaiser commented Jan 17, 2022

I tested it.
If I set project(HPX CXX), enable_language(C) is required for find_package(MPI) to find MPI::MPI_C. After adding enable_language(C), the pkgconfig generator complained.

All right, thanks for checking. Unfortunately I don't have an workarounds in mind. We know that the pkgconfig file generation is problematic (and has been for a while). @hkaiser I'll leave this up to you. I suppose you can always force HPX_WITH_PKGCONFIG=OFF with the LCI parcelport enabled.

That's exactly what I have done already. At least I had done it at some point... (edit: it's here: https://github.com/STEllAR-GROUP/hpx/pull/5715/files#diff-1e7de1ae2d059d21e1dd75d5812d5a34b0222cef273b7c3a2af62eb747f9d20aR1165)

@diehlpk
Copy link
Member

diehlpk commented Mar 16, 2022

@JiakunYan Thanks for the fix. However, the error message is still there.

I added

-DHPX_WITH_PARCELPORT_MPI_ENV:STRING="MV2_COMM_WORLD_RANK;PMI_RANK;OMPI_COMM_WORLD_SIZE;ALPS_APP_PE;PMIX_RANK;PALS_NODEID"

to my cmake to make sure the issues is resolved. However, it is still there.

@JiakunYan
Copy link
Contributor Author

@JiakunYan Thanks for the fix. However, the error message is still there.

I added

-DHPX_WITH_PARCELPORT_MPI_ENV:STRING="MV2_COMM_WORLD_RANK;PMI_RANK;OMPI_COMM_WORLD_SIZE;ALPS_APP_PE;PMIX_RANK;PALS_NODEID"

to my cmake to make sure the issues is resolved. However, it is still there.

I think the cmake variable you want to define should be HPX_WITH_PARCELPORT_LCI_ENV?

@diehlpk
Copy link
Member

diehlpk commented Mar 16, 2022

@JiakunYan

  -DHPX_WITH_PARCELPORT_LCI=On \
    -DHPX_WITH_FETCH_LCI=ON \
    -DLCI_SERVER=ofi \

Should I use a different server?

@JiakunYan
Copy link
Contributor Author

@JiakunYan

  -DHPX_WITH_PARCELPORT_LCI=On \
    -DHPX_WITH_FETCH_LCI=ON \
    -DLCI_SERVER=ofi \

Should I use a different server?

No. ofi is the right server for the Cray network.

Are you using the newest commit of this PR "4d9cc1c4dfa2df622a4bc290cbd75c00d7af57b0"? The error is still there?

@diehlpk
Copy link
Member

diehlpk commented Mar 16, 2022

I think the cmake variable you want to define should be HPX_WITH_PARCELPORT_LCI_ENV?

Yes, if I do that the bootstrap does work and the lci parcel port is found and the code is running.

@diehlpk
Copy link
Member

diehlpk commented Mar 16, 2022

I think the cmake variable you want to define should be HPX_WITH_PARCELPORT_LCI_ENV?

Yes, if I do that the bootstrap does work and the lci parcel port is found, and the code is running.

@diehlpk
Copy link
Member

diehlpk commented Mar 16, 2022

Are you using the newest commit of this PR "4d9cc1c4dfa2df622a4bc290cbd75c00d7af57b0"? The error is still there?

I checked out the pull request this morning, I assume that is the correct commit or?

@diehlpk
Copy link
Member

diehlpk commented Mar 16, 2022

Ok, the code was running for 2 minutes and I get the following error

Initializing cell_geometry 3 8 14
Found root
Loading from X.0.silo ...
Reading X.0.silo
normalized constants
1.989000e+33 3.488925e+09 1.788846e+01 1.000000e+00
A = 3.369168e+01 | B = 4.189325e+01 | G = 1.000000e+00 | kb = 1.824794e-66 | c = 1.537099e+02 | mh = 8.412770e-58 | sigma = 1.631946e-34 | h = 4.895659e-78
normalized constants
1.989000e+33 3.488925e+09 1.788846e+01 1.000000e+00
A = 3.369168e+01 | B = 4.189325e+01 | G = 1.000000e+00 | kb = 1.824794e-66 | c = 1.537099e+02 | mh = 8.412770e-58 | sigma = 1.631946e-34 | h = 4.895659e-78
normalized constants
1.989000e+33 3.488925e+09 1.788846e+01 1.000000e+00
A = 3.369168e+01 | B = 4.189325e+01 | G = 1.000000e+00 | kb = 1.824794e-66 | c = 1.537099e+02 | mh = 8.412770e-58 | sigma = 1.631946e-34 | h = 4.895659e-78
normalized constants
1.989000e+33 3.488925e+09 1.788846e+01 1.000000e+00
A = 3.369168e+01 | B = 4.189325e+01 | G = 1.000000e+00 | kb = 1.824794e-66 | c = 1.537099e+02 | mh = 8.412770e-58 | sigma = 1.631946e-34 | h = 4.895659e-78
Initializing cell_geometry 3 8 14
Initializing cell_geometry 3 8 14
Initializing cell_geometry 3 8 14
Read took 2 seconds
-----------------------------------------------
Re-grid
regridding
Regridded tree in 0.001923 seconds
rebalancing 2537 nodes with 2220 leaves
Rebalanced tree in 0.002681 seconds
forming tree connections
2664 amr boundaries
Formed tree in 0.183469 seconds
solving gravity
srun: error: nid001120: tasks 0-1: Segmentation fault

1 similar comment
@diehlpk
Copy link
Member

diehlpk commented Mar 16, 2022

Ok, the code was running for 2 minutes and I get the following error

Initializing cell_geometry 3 8 14
Found root
Loading from X.0.silo ...
Reading X.0.silo
normalized constants
1.989000e+33 3.488925e+09 1.788846e+01 1.000000e+00
A = 3.369168e+01 | B = 4.189325e+01 | G = 1.000000e+00 | kb = 1.824794e-66 | c = 1.537099e+02 | mh = 8.412770e-58 | sigma = 1.631946e-34 | h = 4.895659e-78
normalized constants
1.989000e+33 3.488925e+09 1.788846e+01 1.000000e+00
A = 3.369168e+01 | B = 4.189325e+01 | G = 1.000000e+00 | kb = 1.824794e-66 | c = 1.537099e+02 | mh = 8.412770e-58 | sigma = 1.631946e-34 | h = 4.895659e-78
normalized constants
1.989000e+33 3.488925e+09 1.788846e+01 1.000000e+00
A = 3.369168e+01 | B = 4.189325e+01 | G = 1.000000e+00 | kb = 1.824794e-66 | c = 1.537099e+02 | mh = 8.412770e-58 | sigma = 1.631946e-34 | h = 4.895659e-78
normalized constants
1.989000e+33 3.488925e+09 1.788846e+01 1.000000e+00
A = 3.369168e+01 | B = 4.189325e+01 | G = 1.000000e+00 | kb = 1.824794e-66 | c = 1.537099e+02 | mh = 8.412770e-58 | sigma = 1.631946e-34 | h = 4.895659e-78
Initializing cell_geometry 3 8 14
Initializing cell_geometry 3 8 14
Initializing cell_geometry 3 8 14
Read took 2 seconds
-----------------------------------------------
Re-grid
regridding
Regridded tree in 0.001923 seconds
rebalancing 2537 nodes with 2220 leaves
Rebalanced tree in 0.002681 seconds
forming tree connections
2664 amr boundaries
Formed tree in 0.183469 seconds
solving gravity
srun: error: nid001120: tasks 0-1: Segmentation fault

@JiakunYan
Copy link
Contributor Author

Are you using the newest commit of this PR "4d9cc1c4dfa2df622a4bc290cbd75c00d7af57b0"? The error is still there?

I checked out the pull request this morning, I assume that is the correct commit or?

I suggest you check the output of git log. If you are using the newest commit, you should not need to manually define HPX_WITH_PARCELPORT_LCI_ENV.

@JiakunYan
Copy link
Contributor Author

Ok, the code was running for 2 minutes and I get the following error

Initializing cell_geometry 3 8 14
Found root
Loading from X.0.silo ...
Reading X.0.silo
normalized constants
1.989000e+33 3.488925e+09 1.788846e+01 1.000000e+00
A = 3.369168e+01 | B = 4.189325e+01 | G = 1.000000e+00 | kb = 1.824794e-66 | c = 1.537099e+02 | mh = 8.412770e-58 | sigma = 1.631946e-34 | h = 4.895659e-78
normalized constants
1.989000e+33 3.488925e+09 1.788846e+01 1.000000e+00
A = 3.369168e+01 | B = 4.189325e+01 | G = 1.000000e+00 | kb = 1.824794e-66 | c = 1.537099e+02 | mh = 8.412770e-58 | sigma = 1.631946e-34 | h = 4.895659e-78
normalized constants
1.989000e+33 3.488925e+09 1.788846e+01 1.000000e+00
A = 3.369168e+01 | B = 4.189325e+01 | G = 1.000000e+00 | kb = 1.824794e-66 | c = 1.537099e+02 | mh = 8.412770e-58 | sigma = 1.631946e-34 | h = 4.895659e-78
normalized constants
1.989000e+33 3.488925e+09 1.788846e+01 1.000000e+00
A = 3.369168e+01 | B = 4.189325e+01 | G = 1.000000e+00 | kb = 1.824794e-66 | c = 1.537099e+02 | mh = 8.412770e-58 | sigma = 1.631946e-34 | h = 4.895659e-78
Initializing cell_geometry 3 8 14
Initializing cell_geometry 3 8 14
Initializing cell_geometry 3 8 14
Read took 2 seconds
-----------------------------------------------
Re-grid
regridding
Regridded tree in 0.001923 seconds
rebalancing 2537 nodes with 2220 leaves
Rebalanced tree in 0.002681 seconds
forming tree connections
2664 amr boundaries
Formed tree in 0.183469 seconds
solving gravity
srun: error: nid001120: tasks 0-1: Segmentation fault

This can be a more complicated error. I don't have access to Perlmutter so I cannot debug it myself. Could you please try compiling HPX with the Debug mode and also adding -DLCI_DEBUG=ON to the cmake configuration step? Hopefully, it could give us some clues about what is happening.

We don't have a Cray machine at hand so we haven't tested LCI on Cray network for a long time. It is likely that the ofi server (which is designed for Cray network) has some bugs. If you merely want to test the LCI parcelport, it might be better to start with some machines with infiniband and use the ibv server. It is more robust than the ofi server.

@diehlpk
Copy link
Member

diehlpk commented Mar 16, 2022

We don't have a Cray machine at hand so we haven't tested LCI on Cray network for a long time. It is likely that the ofi server (which is designed for Cray network) has some bugs.

I am working to get you access to a Cray machine.

@diehlpk
Copy link
Member

diehlpk commented Mar 16, 2022

If you merely want to test the LCI parcelport, it might be better to start with some machines with infiniband and use the ibv server. It is more robust than the ofi server.

I did some recent scaling study on Perlmutter using MPI + Libfabric and I wanted to compare these results with LCI + Libfabric.

@hkaiser hkaiser added this to the 1.8.0 milestone Mar 25, 2022
@hkaiser hkaiser marked this pull request as ready for review March 25, 2022 14:22
hkaiser
hkaiser previously approved these changes Mar 25, 2022
Copy link
Member

@hkaiser hkaiser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@JiakunYan
Copy link
Contributor Author

@hkaiser Just did a rebase. Let's see how the tests go.

hkaiser
hkaiser previously approved these changes Mar 25, 2022
Copy link
Member

@hkaiser hkaiser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@hkaiser
Copy link
Member

hkaiser commented Mar 29, 2022

The remaining errors are unrelated. Thanks a lot!

@hkaiser
Copy link
Member

hkaiser commented Mar 29, 2022

@gonidelis Please include a sentence about this new parcelport in the release notes and add Jiakun to the acknowledgements section.

@hkaiser hkaiser merged commit 8a25db1 into STEllAR-GROUP:master Mar 29, 2022
@gonidelis
Copy link
Contributor

@hkaiser Will do!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants