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

C++11 future #405

Open
llaniewski opened this issue Aug 30, 2022 · 2 comments
Open

C++11 future #405

llaniewski opened this issue Aug 30, 2022 · 2 comments
Assignees
Labels
internal Team discussions not related to users. up to debate Enchantments/changes up to debate

Comments

@llaniewski
Copy link
Member

Before TCLB progresses into a future, some decisions will have to be made.

One such decision is the version of C++ the base code will use. Problem with this is that once we start using some features of C++11 (for example) it will not be possible anymore to compile the code without said version. That why it's crucial to check to select the lowest possible version of C++ we think is needed and check if the code works everywhere we want it to work.

I see value in C++11 as some of it's features can improve code readability. It also seems to be the most used version. If there are some comments about the version choice, add them here.

@mdzik @ggruszczynski @TravisMitchell @shkodm @ndivaira Can we start to check if compilation with ./configure --enable-cpp11 works with the setups we target. By the setups I mean the combinations of: architecture/cluster, compilation options, features like HDF5 or RInside, with/without DEM, etc. Please comment here where you tested and if it worked or not.

@llaniewski llaniewski added up to debate Enchantments/changes up to debate internal Team discussions not related to users. labels Aug 30, 2022
@llaniewski llaniewski self-assigned this Aug 30, 2022
@ggruszczynski
Copy link
Member

C++11 is more than 10yrs here.
IMHO there is no reason to wait.

I used the following config on the Rysy cluster at ICM

def MODULES_BASE "common/libs/libpng/1.6.37 common/R/4.0.3 common/compilers/gcc/9.3.1 common/mpi/openmpi/4.0.4_gnu-9.3 gpu/cuda/11.1"

def CONFOPT "--enable-cpp11 --enable-rinside --with-cuda-arch=sm_60

https://github.com/ggruszczynski/TCLB_cluster/blob/rysy/cluster/rysy.bash

As far as I remember, it also used to work with HDF5.


BTW, others have succesfully implemented more modern C++ standard.

https://developer.nvidia.com/blog/developing-accelerated-code-with-standard-language-parallelism/
https://developer.nvidia.com/blog/multi-gpu-programming-with-standard-parallel-c-part-1/

https://gitlab.com/unigehpfs/stlbm
https://gitlab.com/unigehpfs/eurohack21/-/blob/main/heatEquation2D/heatEquation.cpp

@shkodm
Copy link
Member

shkodm commented Oct 15, 2022

Can we move right away to C++14, instead of C++11? As I remember, C+14 mainly does some fixes and improvement for C+11 but otherwise the same

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
internal Team discussions not related to users. up to debate Enchantments/changes up to debate
Projects
None yet
Development

No branches or pull requests

3 participants