fortran66のブログ

fortran について書きます。

PGI (Nvidia) の Michael Wolfe 氏による HPC 言語の見通し・・・・30年後も Fortran と C++

GPU 利用 HPC 言語の見通し

新言語は来ない。言語の寿命は延びている。

but Wolfe says he believes that both Fortran and C++ will continue to be the future of HPC programming with GPUs with no extensions and no directives for most users

www.nextplatform.com

https://3s81si1s5ygj3mzby34dq6qf-wpengine.netdna-ssl.com/wp-content/uploads/2018/03/MichaelWolfepreso-1024x544.png

During his talk today at the annual GPU Technology Conference (GTC), Wolfe made the argument that the way we write parallel codes in HPC will not change much from how it’s done now. In short, C++ and Fortran will still dominate but for GPU accelerated supercomputing, these simpler methods will overtake others as more creativity is put into exploiting the inherent parallelism of GPU and the sequential offload capabilities of CPUs (which Wolfe says will continue to be just as relevant).

This might not be the sexy futurist answer folks were hoping to hear from Wolfe, but let’s be honest—HPC programming is about extending the lifespan of languages over many decades.

Michael Wolfe の Fire & Fury

“Some, especially those who are younger, are going to be bothered by seeing Fortran here. Think about this: 30 years ago when C++ was invented, Fortran was already 30 years old. Young people then were sneering as many of you are now, saying it’s too old and needs to be retired. Now C++ is 30 and I don’t hear any sneering there—in 30 years when C++ is 60, you’ll be ecstatic that the framework you worked on still works with C++,” Wolfe told the whippersnappers in the room.

『特に若い人達の中には、(HPC 用開発言語として)将来まだ Fortran が残っているだろうことが気に入らないかもしれない。だが考えてみたまえ、30年前に C++ が発明された頃、Fortran はすでに30歳だった。当時の若者は、いまの若者と同じように、そんな古臭いものはさっさと引退させるべきと馬鹿にして腐していた。今や C++ も30歳だが、そっちには誰も馬鹿にしたようなことを言っていない、あと30年もして C++ が60になるころには、チミ達は自分らが使ってきた枠組みが未だ C++ で動いていることに法悦歓喜していることだろう。』と、マイケル・ウォルフは会場のこまっしゃくれた若造どもに語った。

Fire and Fury

Fire and Fury


Gustafson の言い草ではないですが、下層部のハードウェア構成の詳細を吸収するような JIT 的中間層ができれば、ハードウェアの詳細に依存する指示をソースコードに書く必要はなくなり、いまの Fortran のようにループが serial (iterative) か parallel か指定するくらいで十分な気もします。

最初期の FORTRAN I/II/III は特定のハードウェアから切り離せない構成で、FREQUENCY のような compiler directive のような命令までありましたが、FORTRAN IV では機種依存性を無くして抽象化のレベルを上げました。ある意味それと同じようなものかと。

fortran66.hatenablog.com