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

Removed HPX and Boost dependencies and added mesh partitioning and MPI and Multithreading parallelism #20

Merged
merged 64 commits into from
Jun 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
f4512dc
moving from hpx to taskflow
prashjha Feb 2, 2023
f5e42ce
removed hpx; now checking compile issues
prashjha Feb 2, 2023
867732a
code builds and tests seem to pass; need to profile multithread compu…
prashjha Feb 3, 2023
2550511
need to fix circle ci
prashjha Feb 3, 2023
c58935b
readd tasflow
prashjha Feb 3, 2023
75d64f5
checkout taskflow v3.5.0
prashjha Feb 3, 2023
a96b22e
circle change to handle submodules
prashjha Feb 3, 2023
1141be4
circle change to handle submodules
prashjha Feb 3, 2023
e5ef271
circle change to handle submodules
prashjha Feb 3, 2023
e51f57a
circle change to handle submodules
prashjha Feb 3, 2023
8308698
circle change to handle submodules
prashjha Feb 3, 2023
ff4ba87
circle change to handle submodules
prashjha Feb 3, 2023
d86fcad
circle change to handle submodules
prashjha Feb 3, 2023
4fc63b5
circle change to handle submodules
prashjha Feb 3, 2023
49b36ce
removing dependency on tbb
prashjha Feb 3, 2023
7a36ec7
prevent csv reader from depending on threads
prashjha Feb 3, 2023
d78840c
prevent csv reader from depending on threads
prashjha Feb 3, 2023
28dc76a
taskflow needs tbb library
prashjha Feb 3, 2023
9432016
update cmake file
prashjha Feb 3, 2023
571a68a
add C as language for code to compile on mac; modify vtk call for it …
prashjha Feb 3, 2023
c60f682
moving to vtk 9; fixed run scripts to capture script output in mac
prashjha Feb 3, 2023
c53059b
update docker for circle-ci tests; check for matrix correctly; add do…
prashjha Feb 4, 2023
ef617b5
checking why TestFE fails in docker
prashjha Feb 5, 2023
6f0a11e
Test compile with docker image
prashjha Feb 5, 2023
4ad5d10
update circleci config and enable deploy and codecoverage only for ma…
prashjha Feb 5, 2023
0060160
convert error into warning for max_node_dist check in PeriDEM() model
prashjha Feb 5, 2023
0273dd0
WIP: code does not compiles. Fixed taskflow integration
prashjha May 22, 2024
0caf872
specify taskflow submodule branch
prashjha May 22, 2024
5a0dbf8
specify taskflow submodule branch
prashjha May 22, 2024
53c47ed
WIP: remove taskflow
prashjha May 22, 2024
4d61397
WIP: remove taskflow
prashjha May 22, 2024
fb3b9bd
WIP: add taskflow v3.7.0
prashjha May 22, 2024
2cec686
WIP: compiling code
prashjha May 22, 2024
ad432aa
Merge branch 'remove_hpx' of github.com:prashjha/PeriDEM into remove_hpx
prashjha May 22, 2024
7f307e1
WIP: add taskflow specific release and later use submodule feature
prashjha May 22, 2024
68c98ea
add simple test to see speed-up with taskflow. Speed-up is seen when …
prashjha May 22, 2024
2f7a864
use metis for partitioning of mesh
prashjha May 23, 2024
bb42200
added tests for metis partitioning
prashjha May 25, 2024
6bb5ddb
use metis for partitioning of mesh
prashjha May 26, 2024
dbe9399
WIP: MPI parallelization test. Added util functions in fe and geometr…
prashjha May 27, 2024
9a96e4b
Added flags to run MPI tests in Circleci
prashjha May 29, 2024
905e130
Added flags to run MPI tests in Circleci
prashjha May 29, 2024
d87590b
Added flags to run MPI tests in Circleci
prashjha May 29, 2024
26d3c97
Small fix in circle-ci config in setting env variable
prashjha May 29, 2024
ba76ac1
do not build mpi tests in circle-ci testing
prashjha May 29, 2024
e34327e
Implemented MPI testing for nonlocal calculations
prashjha May 31, 2024
d513093
Implemented MPI testing for nonlocal calculations
prashjha May 31, 2024
5e996fa
Fixed problem including mpi.h
prashjha Jun 1, 2024
a7fd8b6
Add util::mpi::initMpi() to all executibles
prashjha Jun 1, 2024
285df94
disable mpi tests inside docker
prashjha Jun 1, 2024
4c5a2b3
add flag to force build mpi tests inside docker
prashjha Jun 1, 2024
ccaeb08
add flag to force build mpi tests inside docker
prashjha Jun 1, 2024
349e00b
select user in docker container and enable mpi tests in circle-ci docker
prashjha Jun 1, 2024
84e59ad
minor updates
prashjha Jun 1, 2024
99b5024
fix number of threads from input argument if provided, set threads in…
prashjha Jun 2, 2024
b0982b7
1. updated README.md file, 2. addressed doxygen warning on header fil…
prashjha Jun 3, 2024
f5b38dd
update tutorial folder
prashjha Jun 3, 2024
8cb8686
update versions of nanoflann and csv and keep only files we need from…
prashjha Jun 3, 2024
73bd152
cleaned external directory and added README.md in external directory …
prashjha Jun 3, 2024
975e628
update circle-ci config
prashjha Jun 3, 2024
482609f
update circle-ci config. Ready to merge to main
prashjha Jun 3, 2024
144c2e3
update circle-ci config. Ready to merge to main
prashjha Jun 3, 2024
194c4aa
update circle-ci config. Ready to merge to main
prashjha Jun 3, 2024
09a4a66
update circle-ci config. Ready to merge to main
prashjha Jun 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
49 changes: 36 additions & 13 deletions .circleci/Docker/Dockerfile-bionic
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,48 @@
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

# base ubuntu image with petsc, libmesh, hpx
# base ubuntu image with essentials and vtk
FROM prashjha/peridem-base-bionic:latest

# Set metadata
LABEL maintainer="Prashant K. Jha <[email protected]>"
LABEL description="PeriDEM docker image"

WORKDIR /
## build command
## docker build -t prashjha/peridem-bionic:latest -f ./Dockerfile-bionic . 2>&1 | tee log-peridem-bionic.txt

RUN git clone https://github.com/prashjha/PeriDEM.git
# -----------------------
# setup user (for mpi tests)
# username - user
# password - password
# add only if the user does not exist
# -----------------------
RUN if id user >/dev/null 2>&1; then echo "User 'user' already exists"; else echo "User 'user' does not exist so creating user 'user'" && useradd -m user && yes password | passwd user && usermod -s /bin/bash user; fi

RUN cd /PeriDEM && \
mkdir build && \
cd build && \
cmake -DHPX_IGNORE_COMPILER_COMPATIBILITY=ON \
-DCMAKE_BUILD_TYPE=Release \
-DEnable_Tests=ON \
-DHPX_DIR=${HPX_DIR}/lib/cmake/HPX \
.. && \
make -j 2 && \
make install
# change user
USER user
WORKDIR /home/user

# -----------------------
# setup git pull method
# -----------------------
RUN git config --global url."https://github.com/".insteadOf [email protected]: && \
git config --global url."https://".insteadOf git://

# -----------------------
# build peridem
# -----------------------
RUN git clone https://github.com/prashjha/PeriDEM.git &&\
cd PeriDEM &&\
git submodule update --init --recursive && \
mkdir -p build && \
cd build && \
cmake -DCMAKE_BUILD_TYPE=Release \
-DEnable_Tests=ON \
-DDisable_Docker_MPI_Tests=OFF \
-DVTK_DIR=/usr/local/lib/cmake/vtk-9.3 \
-DMETIS_DIR=/usr/lib \
.. && \
make -j 2 && \
make install

49 changes: 36 additions & 13 deletions .circleci/Docker/Dockerfile-focal
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,48 @@
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

# base ubuntu image with petsc, libmesh, hpx
# base ubuntu image with essentials and vtk
FROM prashjha/peridem-base-focal:latest

# Set metadata
LABEL maintainer="Prashant K. Jha <[email protected]>"
LABEL description="PeriDEM docker image"

WORKDIR /
## build command
## docker build -t prashjha/peridem-focal:latest -f ./Dockerfile-focal . 2>&1 | tee log-peridem-focal.txt

RUN git clone https://github.com/prashjha/PeriDEM.git
# -----------------------
# setup user (for mpi tests)
# username - user
# password - password
# add only if the user does not exist
# -----------------------
RUN if id user >/dev/null 2>&1; then echo "User 'user' already exists"; else echo "User 'user' does not exist so creating user 'user'" && useradd -m user && yes password | passwd user && usermod -s /bin/bash user; fi

RUN cd /PeriDEM && \
mkdir build && \
cd build && \
cmake -DHPX_IGNORE_COMPILER_COMPATIBILITY=ON \
-DCMAKE_BUILD_TYPE=Release \
-DEnable_Tests=ON \
-DHPX_DIR=${HPX_DIR}/lib/cmake/HPX \
.. && \
make -j 2 && \
make install
# change user
USER user
WORKDIR /home/user

# -----------------------
# setup git pull method
# -----------------------
RUN git config --global url."https://github.com/".insteadOf [email protected]: && \
git config --global url."https://".insteadOf git://

# -----------------------
# build peridem
# -----------------------
RUN git clone https://github.com/prashjha/PeriDEM.git &&\
cd PeriDEM &&\
git submodule update --init --recursive && \
mkdir -p build && \
cd build && \
cmake -DCMAKE_BUILD_TYPE=Release \
-DEnable_Tests=ON \
-DDisable_Docker_MPI_Tests=OFF \
-DVTK_DIR=/usr/local/lib/cmake/vtk-9.3 \
-DMETIS_DIR=/usr/lib \
.. && \
make -j 2 && \
make install

56 changes: 37 additions & 19 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,23 @@ version: 2.1
parameters:
docker-img-os:
type: string
default: bionic

default: focal
cmake-include-dirs:
type: string
default: -DVTK_DIR=/usr/local/lib/cmake/vtk-9.3 -DMETIS_DIR=/usr/lib

commands:
postcheckout:
steps:
- run:
name: "Pull submodules"
command: |
git submodule update --init --recursive
libcmake:
parameters:
cmake-args:
type: string
default: -DCMAKE_BUILD_TYPE=Release -DEnable_Tests=ON -DHPX_DIR=${HPX_DIR}/lib/cmake/HPX
default: -DCMAKE_BUILD_TYPE=Release -DEnable_Tests=ON -DEnable_Documentation=OFF -DDisable_Docker_MPI_Tests=OFF <<pipeline.parameters.cmake-include-dirs>>
steps:
- run:
name: Configure
Expand All @@ -35,7 +44,7 @@ commands:
parameters:
verb-flag:
type: string
default: --verbose
default: --extra-verbose
steps:
- run:
name: Test
Expand All @@ -54,18 +63,22 @@ jobs:
build:
docker:
- image: prashjha/peridem-base-<<pipeline.parameters.docker-img-os>>:latest
user: user
steps:
- checkout
- libcmake
- libmake
- libtest
- checkout
- postcheckout
- libcmake
- libmake
- libtest
documentation:
docker:
- image: prashjha/peridem-base-<<pipeline.parameters.docker-img-os>>:latest
user: user
steps:
- checkout
- postcheckout
- libcmake:
cmake-args: -DCMAKE_BUILD_TYPE=Release -DEnable_Documentation=ON -DHPX_DIR=${HPX_DIR}/lib/cmake/HPX
cmake-args: -DCMAKE_BUILD_TYPE=Release -DEnable_Tests=ON -DEnable_Documentation=ON <<pipeline.parameters.cmake-include-dirs>>
- libdoc
deploy:
machine:
Expand All @@ -75,6 +88,7 @@ jobs:
IMAGE_NAME: peridem-<<pipeline.parameters.docker-img-os>>:latest
steps:
- checkout
- postcheckout
- run:
name: Build docker
command: |
Expand All @@ -98,10 +112,12 @@ jobs:
codecoverage:
docker:
- image: prashjha/peridem-base-<<pipeline.parameters.docker-img-os>>:latest
user: user
steps:
- checkout
- postcheckout
- libcmake:
cmake-args: -DCMAKE_BUILD_TYPE=Release -DEnable_Tests=ON -DHPX_DIR=${HPX_DIR}/lib/cmake/HPX -DCMAKE_CXX_FLAGS="-g -O0 -fprofile-arcs -ftest-coverage -fpic"
cmake-args: -DCMAKE_BUILD_TYPE=Release -DEnable_Tests=ON -DCMAKE_CXX_FLAGS="-g -O0 -fprofile-arcs -ftest-coverage -fpic" <<pipeline.parameters.cmake-include-dirs>>
- libmake
- libtest:
verb-flag: ""
Expand All @@ -122,27 +138,29 @@ jobs:
fi
workflows:
version: 2
build_doc_deploy_cov:
build_doc_deploy_codecov:
jobs:
- build:
filters:
branches:
ignore: gh-pages
# - documentation:
# filters:
# branches:
# ignore: gh-pages
# requires:
# - build
- documentation:
filters:
branches:
only: main
requires:
- build
- deploy:
filters:
branches:
ignore: gh-pages
only: main
requires:
- documentation
- build
- codecoverage:
filters:
branches:
ignore: gh-pages
only: main
requires:
- documentation
- build
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,14 @@
# build directory
build
build_2
build2
build*
cmake-build*

# ide directory
.idea
.idea/workspace.xml
.vscode


# docs directory
Expand All @@ -70,4 +74,4 @@ __pycache__
*/__pycache__/*

# ignore specific test directory
test_ignored_dir
test_ignored_dir
Loading
Loading