Skip to content

Commit c498ce4

Browse files
committed
ci: install MPI
1 parent d247d63 commit c498ce4

File tree

3 files changed

+12
-103
lines changed

3 files changed

+12
-103
lines changed

.github/workflows/ci.yml

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,15 @@ jobs:
2323
steps:
2424
- uses: actions/checkout@v4
2525

26+
- name: Install MPI (Linux)
27+
if: ${{ runner.os == 'Linux' }}
28+
run: sudo apt install libopenmpi-dev
29+
30+
- name: Install MPI (MacOS)
31+
if: ${{ runner.os == 'macOS' }}
32+
run: brew install open-mpi
33+
2634
- run: cmake -B build -DIDXTYPEWIDTH=${{ matrix.intsize }}
2735
- run: cmake --build build --parallel
2836

2937
- run: ctest --test-dir build -V
30-
31-
32-
windows_msvc:
33-
runs-on: windows-latest
34-
timeout-minutes: 5
35-
36-
steps:
37-
- uses: actions/checkout@v4
38-
39-
- run: cmake -B build
40-
41-
- run: cmake --build build --config Release --parallel
42-
43-
- run: ctest --test-dir build -C Release -V

CMakePresets.json

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,6 @@
88
"cacheVariables": {
99
"CMAKE_COMPILE_WARNING_AS_ERROR": true
1010
}
11-
},
12-
{
13-
"name": "msvc", "inherits": "default",
14-
"generator": "Visual Studio 17 2022",
15-
"cacheVariables": {
16-
"CMAKE_COMPILE_WARNING_AS_ERROR": false
17-
}
1811
}
1912
],
2013
"buildPresets": [
@@ -26,11 +19,6 @@
2619
"name": "release",
2720
"configurePreset": "default",
2821
"configuration": "Release"
29-
},
30-
{
31-
"name": "msvc-debug",
32-
"configurePreset": "msvc",
33-
"configuration": "Debug"
3422
}
3523
],
3624
"testPresets": [
@@ -51,11 +39,6 @@
5139
{
5240
"name": "release", "inherits": "default",
5341
"configuration": "Release"
54-
},
55-
{
56-
"name": "msvc-debug", "inherits": "default",
57-
"configurePreset": "msvc",
58-
"configuration": "Debug"
5942
}
6043
],
6144
"workflowPresets": [
@@ -72,19 +55,6 @@
7255
}
7356
]
7457
},
75-
{
76-
"name": "msvc",
77-
"steps": [
78-
{
79-
"type": "configure",
80-
"name": "msvc"
81-
},
82-
{
83-
"type": "build",
84-
"name": "msvc-debug"
85-
}
86-
]
87-
},
8858
{
8959
"name": "release",
9060
"steps": [

README.md

Lines changed: 4 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# ParMETIS
22

3+
[![ci](https://github.com/scivision/ParMETIS/actions/workflows/ci.yml/badge.svg)](https://github.com/scivision/ParMETIS/actions/workflows/ci.yml)
4+
35
ParMETIS is an MPI-based library for partitioning graphs, partitioning finite element meshes,
46
and producing fill reducing orderings for sparse matrices. The algorithms implemented in
57
ParMETIS are based on the multilevel recursive-bisection, multilevel k-way, and multi-constraint
@@ -12,71 +14,14 @@ You can download ParMETIS by simply cloning it using the command:
1214
git clone https://github.com/KarypisLab/ParMETIS.git
1315
```
1416

15-
## Building the ParMETIS library
1617

1718
To build ParMETIS you can follow the instructions below:
1819

19-
### Dependencies
20-
21-
General dependencies for building ParMETIS are: gcc, cmake, build-essential, and an MPI library.
22-
In Ubuntu systems these can be obtained from the apt package manager (e.g., apt-get install cmake, mpich, etc)
23-
24-
```
25-
sudo apt-get install build-essential
26-
sudo apt-get install cmake
27-
```
28-
29-
In addition, you need to download and install
30-
[GKlib](https://github.com/KarypisLab/GKlib) and
31-
[METIS](https://github.com/KarypisLab/METIS) by following the instructions there.
32-
33-
34-
### Building and installing ParMETIS
35-
36-
ParMETIS is primarily configured by passing options to make config. For example:
37-
38-
```
39-
make config cc=mpicc prefix=~/local
40-
make install
41-
```
42-
43-
will configure ParMETIS to be built using mpicc and then install the binaries, header files, and libraries at
44-
20+
```sh
21+
cmake --workflow --preset default
4522
```
46-
~/local/bin
47-
~/local/include
48-
~/local/lib
49-
```
50-
51-
directories, respectively.
52-
53-
### Common configuration options are:
54-
55-
cc=[compiler] - The C compiler to use [default is determined by CMake]
56-
shared=1 - Build a shared library instead of a static one [off by default]
57-
prefix=[PATH] - Set the installation prefix [~/local by default]
58-
gklib_path=[PATH] - Set the prefix path where GKlib has been installed. You can skip
59-
this if GKlib's installation prefix is the same as that of ParMETIS.
60-
metis_path=[PATH] - Set the prefix path where METIS has been installed. You can skip
61-
this if METIS' installation prefix is the same as that of ParMETIS.
62-
63-
### Advanced debugging related options:
64-
65-
gdb=1 - Build with support for GDB [off by default]
66-
debug=1 - Enable debugging support [off by default]
67-
assert=1 - Enable asserts [off by default]
68-
assert2=1 - Enable very expensive asserts [off by default]
69-
70-
### Other make commands
71-
72-
make uninstall
73-
Removes all files installed by 'make install'.
7423

75-
make clean
76-
Removes all object files but retains the configuration options.
7724

78-
make distclean
79-
Performs clean and completely removes the build directory.
8025

8126
### Definitions of supported data types
8227

0 commit comments

Comments
 (0)