Comments (11)
I have parallelize part of following functions in a new branch [openmp-dev-linux]
of repo called M3C-Lab/PERIGEE-viv2022
:
GmshFIleIO::write_vtp()
inM3C-Lab/PERIGEE-viv2022/src/Mesh/
GmshFileIO::write_each_vtu()
inM3C-Lab/PERIGEE-viv2022/src/Mesh/
Part_Tet::Generate_Partition()
inM3C-Lab/PERIGEE-viv2022/src/Mesh/
NodalBC_3D_FSI::NodalBC_3D_FSI()
inM3C-Lab/PERIGEE-viv2022/examples/tet4_fsi/src/
NodalBC_3D_vtu::NodalBC_3D_vtu()
inM3C-Lab/PERIGEE-viv2022/src/Mesh/
.
from perigee.
- openmp的计时功能
- openmp的配置
- openmp的报错信息处理
from perigee.
https://cliutils.gitlab.io/modern-cmake/chapters/packages/OpenMP.html
from perigee.
https://stackoverflow.com/questions/49816206/cmake-find-package-specify-path
from perigee.
from perigee.
使用cmake自带的FindOpenMP.cmake进行配置,在system_lib_loading.cmake内修改
- 添加:
set(OpenMP_ROOT /Users/chongran/lib/lib-omp)
find_package(OpenMP REQUIRED)
include_directories(${OpenMP_CXX_INCLUDE_DIR})
set(EXTRA_LINK_LIBS ${EXTRA_LINK_LIBS} ${OpenMP_CXX_LIBRARIES})
if(OPENMP_CXX_FOUND)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
- 修改:
if( ${CMAKE_BUILD_TYPE} MATCHES "Release" )
set(CMAKE_CXX_FLAGS " -O3 -Wall ")
else( ${CMAKE_BUILD_TYPE} MATCHES "Release" )
set(CMAKE_CXX_FLAGS " -DENABLE_TEST -O0 -Wall ")
endif( ${CMAKE_BUILD_TYPE} MATCHES "Release" )
变为
if( ${CMAKE_BUILD_TYPE} MATCHES "Release" )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall ")
else( ${CMAKE_BUILD_TYPE} MATCHES "Release" )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_TEST -O0 -Wall ")
endif( ${CMAKE_BUILD_TYPE} MATCHES "Release" )
from perigee.
Conditional use of OpenMP
https://stackoverflow.com/questions/56717411/control-conditional-openmp-in-define-macro
from perigee.
https://stackoverflow.com/questions/45477355/difference-between-pragma-and-pragma-in-c
from perigee.
https://www.dealii.org/current/doxygen/deal.II/config_8h_source.html
from perigee.
我们或许可以调控对每个exeutable文件的编译flag,参考这个
https://stackoverflow.com/questions/24238937/how-to-change-a-compiler-flag-for-just-one-executable-in-cmake
@ZhaoChongran
from perigee.
[] 我们还需要在程序里面设置omp_num_threads,避免环境变量里面没有设置这个参数。
[] 我们需要在Sys_Tools中加入一个 print函数 能够把当前的线程个数打印出来。
@ZhaoChongran
from perigee.
Related Issues (20)
- use VEC_T max min to simplify the writing of preprocessor
- part of Math_Tools move to a new namespace FE_Tools HOT 4
- Unify print_fatal and print_exit HOT 3
- ALocal_InflowBC needs maintance
- element improvement HOT 4
- Matrix_double_6by6_Array needs maintance HOT 3
- vec3_t namespace needs to be shortened. HOT 1
- Gmsh_FileIO needs more checkers to make sure the file is compatible. HOT 1
- Enable periodic BC with reading section '$Periodic' in .msh file
- petsc use PETSC_NULLPTR
- Make Matrix_SymPos_Dense an independent class HOT 1
- exp function for Tensor2_3D HOT 1
- print_fatal_if_not in SYS_T needs to be updated. HOT 1
- Make QuadPts_vis_xxx as a pure header class
- orthogonalize the basis vectors in anisotropic models
- we need to enable anisotropic model in prestress generation in vascular FSI project
- PGAssem_FSI::Assem_surface_ave_pressure for inlet ( para: ALocal_InflowBC * ... ) should be updated
- PDNSolution_V in fsi need to be updated HOT 1
- Backflowstab functions in the ns example need to be updated.
- EBC functions from PLocaAssem in ns need to be updated.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from perigee.