Skip to content

Commit b06c009

Browse files
authored
v3.5 (#207)
1 parent aad3482 commit b06c009

File tree

1,036 files changed

+29041
-20461
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,036 files changed

+29041
-20461
lines changed

.devcontainer/devcontainer.json

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"name": "mkl-vtk-cuda",
3+
// two iamges are provided
4+
// 1. The following contains MKL and VTK
5+
// "image": "tlcfem/suanpan-env",
6+
// 2. The following contains MKL and VTK and CUDA
7+
// "image": "tlcfem/suanpan-env-cuda",
8+
"image": "tlcfem/suanpan-env-cuda",
9+
"remoteUser": "nonroot"
10+
}

.github/workflows/dev-all.yml

+103-11
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@ on:
44
branches: [ dev ]
55
pull_request:
66
branches: [ dev ]
7+
env:
8+
SP_TIME: ''
9+
ARTIFACT: ''
10+
IOMP: ''
11+
COVERAGE: ''
712
jobs:
813
ubuntu-dev:
9-
if: ${{ !contains(github.event.head_commit.message, '[skip]') }}
14+
if: ${{ !contains(github.event.head_commit.message, '[skip.linux]') }} && ${{ !contains(github.event.head_commit.message, '[skip.all]') }}
1015
runs-on: ubuntu-22.04
1116
timeout-minutes: 60
1217
strategy:
@@ -41,18 +46,19 @@ jobs:
4146
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
4247
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
4348
fi
49+
sudo apt-get update
4450
if [ "${{ matrix.mkl }}" == "ON" ]; then
45-
sudo apt-get update && sudo apt-get install intel-oneapi-mkl-devel
51+
sudo apt-get install intel-oneapi-mkl-devel
4652
fi
4753
if [ "${{ matrix.compiler.c }}" == "icx" ]; then
48-
sudo apt-get update && sudo apt-get install intel-oneapi-compiler-dpcpp-cpp intel-oneapi-compiler-fortran
54+
sudo apt-get install intel-oneapi-compiler-dpcpp-cpp intel-oneapi-compiler-fortran
4955
echo "IOMP=ON" >> "$GITHUB_ENV"
5056
else
5157
echo "IOMP=OFF" >> "$GITHUB_ENV"
5258
fi
5359
- name: Dependency
5460
run: |
55-
sudo apt-get update && sudo apt-get install mesa-common-dev mesa-utils freeglut3-dev libglvnd-dev dpkg-dev xz-utils
61+
sudo apt-get install libglvnd-dev dpkg-dev xz-utils
5662
echo "COVERAGE=OFF" >> "$GITHUB_ENV"
5763
- name: Flag
5864
if: |
@@ -130,7 +136,7 @@ jobs:
130136
env:
131137
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
132138
macos-dev:
133-
if: ${{ !contains(github.event.head_commit.message, '[skip]') }}
139+
if: ${{ !contains(github.event.head_commit.message, '[skip.macos]') }} && ${{ !contains(github.event.head_commit.message, '[skip.all]') }}
134140
runs-on: macos-13
135141
timeout-minutes: 100
136142
strategy:
@@ -155,15 +161,14 @@ jobs:
155161
brew install go libomp
156162
go build Checker/updater.go
157163
mkdir build && cd build
158-
export CXXFLAGS="-Wl,-ld_classic"
159-
export FC=gfortran-11
164+
export FC=gfortran-12
160165
if [ "${{ matrix.compiler }}" == "clang" ]; then
161166
export CC=$(brew --prefix llvm@15)/bin/clang
162167
export CXX=$(brew --prefix llvm@15)/bin/clang++
163168
cmake -DCMAKE_C_STANDARD_INCLUDE_DIRECTORIES=$(brew --prefix libomp)/include -DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES=$(brew --prefix libomp)/include -DCMAKE_Fortran_STANDARD_INCLUDE_DIRECTORIES=$(brew --prefix libomp)/include -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DUSE_VTK=${{ matrix.vtk }} -DVTK_DIR=/Users/runner/work/suanPan/suanPan/lib/cmake/vtk-9.2/ -DCMAKE_INSTALL_PREFIX=dist ..
164169
else
165-
export CC=gcc-11
166-
export CXX=g++-11
170+
export CC=gcc-12
171+
export CXX=g++-12
167172
cmake -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DUSE_VTK=${{ matrix.vtk }} -DVTK_DIR=/Users/runner/work/suanPan/suanPan/lib/cmake/vtk-9.2/ -DCMAKE_INSTALL_PREFIX=dist ..
168173
fi
169174
make install -j4
@@ -193,7 +198,7 @@ jobs:
193198
name: ${{ env.ARTIFACT }}
194199
path: ${{ env.ARTIFACT }}
195200
windows-dev:
196-
if: ${{ !contains(github.event.head_commit.message, '[skip]') }}
201+
if: ${{ !contains(github.event.head_commit.message, '[skip.windows.vs]') }} && ${{ !contains(github.event.head_commit.message, '[skip.all]') }}
197202
runs-on: windows-2022
198203
timeout-minutes: 100
199204
strategy:
@@ -202,13 +207,22 @@ jobs:
202207
compiler: [ "Visual Studio 17 2022" ]
203208
vtk: [ ON, OFF ]
204209
avx: [ ON, OFF ]
210+
mkl: [ ON, OFF ]
205211
steps:
206212
- name: Clone
207213
uses: actions/checkout@v4
208214
- name: Golang
209215
uses: actions/setup-go@v5
210216
with:
211217
cache: false
218+
- name: MKL
219+
shell: cmd
220+
if: matrix.mkl == 'ON'
221+
run: |
222+
C:/msys64/usr/bin/wget.exe -q https://registrationcenter-download.intel.com/akdlm/IRC_NAS/a665fc26-bdf1-415f-9fc4-345f257f4fb1/w_onemkl_p_2024.2.1.106_offline.exe
223+
C:/msys64/usr/bin/wget.exe -q https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ea23d696-a77f-4a4a-8996-20d02cdbc48f/w_fortran-compiler_p_2024.2.1.81_offline.exe
224+
w_onemkl_p_2024.2.1.106_offline.exe -s -a --silent --eula accept
225+
w_fortran-compiler_p_2024.2.1.81_offline.exe -s -a --silent --eula accept
212226
- name: VTK
213227
if: matrix.vtk == 'ON'
214228
run: |
@@ -218,7 +232,10 @@ jobs:
218232
run: |
219233
go build Checker/updater.go
220234
mkdir build && cd build
221-
cmake -G "${{ matrix.compiler }}" -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DUSE_AVX2=${{ matrix.avx }} -DUSE_VTK=${{ matrix.vtk }} -DVTK_DIR=D:/a/suanPan/suanPan/lib/cmake/vtk-9.2/ -DCMAKE_INSTALL_PREFIX=dist ..
235+
if (Test-Path "C:/Program Files (x86)/Intel/oneAPI/") {
236+
cmd.exe "/K" '"C:\Program Files (x86)\Intel\oneAPI\setvars.bat" && powershell'
237+
}
238+
cmake -G "${{ matrix.compiler }}" -T fortran=ifx -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DUSE_AVX2=${{ matrix.avx }} -DUSE_VTK=${{ matrix.vtk }} -DVTK_DIR=D:/a/suanPan/suanPan/lib/cmake/vtk-9.2/ -DUSE_MKL=${{ matrix.mkl }} -DLINK_DYNAMIC_MKL=OFF -DMKLROOT="C:/Program Files (x86)/Intel/oneAPI/mkl/latest" -DCMAKE_INSTALL_PREFIX=dist ..
222239
cmake --build . --target install --config ${{ matrix.build }} -j 4
223240
- name: Pack
224241
shell: bash
@@ -230,6 +247,80 @@ jobs:
230247
else
231248
file_name+="-release"
232249
fi
250+
if [ "${{ matrix.mkl }}" == "ON" ]; then
251+
file_name+="-mkl"
252+
else
253+
file_name+="-openblas"
254+
fi
255+
if [ "${{ matrix.avx }}" == "ON" ]; then
256+
file_name+="-avx"
257+
else
258+
file_name+="-no-avx"
259+
fi
260+
if [ "${{ matrix.vtk }}" == "ON" ]; then
261+
file_name+="-vtk"
262+
fi
263+
if [ "${{ matrix.mkl }}" == "ON" ]; then
264+
file_name+=".zip"
265+
echo "ARTIFACT=$file_name" >> "$GITHUB_ENV"
266+
cd build/dist/bin
267+
7z a -tzip ../../../$file_name ./*
268+
else
269+
file_name+=".7z"
270+
echo "ARTIFACT=$file_name" >> "$GITHUB_ENV"
271+
cd build/dist/bin
272+
7z a ../../../$file_name ./*
273+
fi
274+
- name: Test
275+
run: |
276+
build/dist/bin/suanPan.exe -v
277+
- name: Upload
278+
uses: actions/upload-artifact@v4
279+
with:
280+
name: ${{ env.ARTIFACT }}
281+
path: ${{ env.ARTIFACT }}
282+
windows-gcc-dev:
283+
if: ${{ !contains(github.event.head_commit.message, '[skip.windows.gcc]') }} && ${{ !contains(github.event.head_commit.message, '[skip.all]') }}
284+
runs-on: windows-2022
285+
timeout-minutes: 100
286+
strategy:
287+
matrix:
288+
build: [ Release ]
289+
compiler: [ "MinGW Makefiles" ]
290+
vtk: [ ON ]
291+
avx: [ ON, OFF ]
292+
steps:
293+
- name: Clone
294+
uses: actions/checkout@v4
295+
- name: Golang
296+
uses: actions/setup-go@v5
297+
with:
298+
cache: false
299+
- name: GCC
300+
run: |
301+
C:/msys64/usr/bin/wget.exe -q https://github.com/brechtsanders/winlibs_mingw/releases/download/13.2.0posix-18.1.5-11.0.1-msvcrt-r8/winlibs-x86_64-posix-seh-gcc-13.2.0-mingw-w64msvcrt-11.0.1-r8.7z
302+
7z x winlibs-x86_64-posix-seh-gcc-13.2.0-mingw-w64msvcrt-11.0.1-r8.7z
303+
- name: VTK
304+
if: matrix.vtk == 'ON'
305+
run: |
306+
C:/msys64/usr/bin/wget.exe -q https://github.com/TLCFEM/prebuilds/releases/download/latest/VTK-9.3.1-win-gcc.7z
307+
7z x VTK-9.3.1-win-gcc.7z -oVTK
308+
- name: Compile
309+
run: |
310+
go build Checker/updater.go
311+
mkdir build && cd build
312+
cmake -G "${{ matrix.compiler }}" -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_C_COMPILER=D:/a/suanPan/suanPan/mingw64/bin/gcc.exe -DCMAKE_CXX_COMPILER=D:/a/suanPan/suanPan/mingw64/bin/g++.exe -DCMAKE_Fortran_COMPILER=D:/a/suanPan/suanPan/mingw64/bin/gfortran.exe -DUSE_AVX2=${{ matrix.avx }} -DUSE_VTK=${{ matrix.vtk }} -DVTK_DIR=D:/a/suanPan/suanPan/VTK/lib/cmake/vtk-9.3 -DCMAKE_INSTALL_PREFIX=dist ..
313+
cmake --build . --target install --config ${{ matrix.build }} -j 4
314+
- name: Pack
315+
shell: bash
316+
run: |
317+
cp updater.exe build/dist/bin
318+
file_name="suanPan-win-gcc"
319+
if [ "${{ matrix.build }}" == "Debug" ]; then
320+
file_name+="-debug"
321+
else
322+
file_name+="-release"
323+
fi
233324
file_name+="-openblas"
234325
if [ "${{ matrix.avx }}" == "ON" ]; then
235326
file_name+="-avx"
@@ -251,3 +342,4 @@ jobs:
251342
with:
252343
name: ${{ env.ARTIFACT }}
253344
path: ${{ env.ARTIFACT }}
345+

.github/workflows/docker.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
branches: [ dev ]
55
jobs:
66
ubuntu-dev:
7-
if: "!contains(github.event.head_commit.message, '[skip]')"
7+
if: ${{ !contains(github.event.head_commit.message, '[skip.all]') }}
88
runs-on: ubuntu-22.04
99
timeout-minutes: 60
1010
steps:
@@ -18,9 +18,9 @@ jobs:
1818
- name: Buildx
1919
uses: docker/setup-buildx-action@v3
2020
- name: Build
21-
uses: docker/build-push-action@v5
21+
uses: docker/build-push-action@v6
2222
with:
2323
context: .
2424
file: ./Script/Rocky.Dockerfile
2525
push: true
26-
tags: ${{ secrets.DOCKERHUB_USERNAME }}/suanpan:latest
26+
tags: tlcfem/suanpan:latest

0 commit comments

Comments
 (0)