nvhpcモジュールでgcc/10.2.0等を用いてC++17 parallel algorithmsを使うとエラーが起きます

C++17 parallel algorithmsを使うためにはgcc/10.2.0等新しいバージョンのgccモジュールをロードする必要がございます。

nvhpcモジュールとgcc/10.2.0等を組み合わせてnvc++ -stdpar=gpu等でソースをコンパイルすると以下のようなエラーが発生することがあります。

 

"/apps/t3/sles12sp2/isv/nvidia/hpc_sdk/Linux_x86_64/21.7/compilers/include-stdpar/thrust/mr/new.h", line 44: error: namespace "std" has no member "align_val_t"
          return ::operator new(bytes, std::align_val_t(alignment));
                                            ^

"/apps/t3/sles12sp2/isv/nvidia/hpc_sdk/Linux_x86_64/21.7/compilers/include-stdpar/thrust/mr/new.h", line 66: error: namespace "std" has no member "align_val_t"
          ::operator delete(p, bytes, std::align_val_t(alignment));

このエラーが発生する場合は以下をお試し下さい。

$ makelocalrc -x -d . -gcc `which gcc` -gpp `which g++`

$ export NVLOCALRC=$PWD/localrc