2019年9月11日水曜日

読書環境

今日読んだ本、並行コンピューティング技法 ―実践マルチコア/マルチスレッドプログラミング (Clay Breshears(著)、千住 治郎(翻訳)、オライリージャパン)の感想。

Head First Goを終えて、一応Go言語の基礎は身についたし、基礎以上のことを知ったりしたいということで何か本を探すことに。それだけでだとなかなか選択しにくいかと思って、Go言語の特徴の一つは並行処理が書きやすいということを耳にしたことがあったから、それを目安に探すことに。それで本著を発見。本著で使われているプログラミング言語はC言語かC++言語が中心ぽかったから少し迷ったものの、そのコードと同様の処理ををGo言語で書くことで、Go言語での並行処理の書きやすさ、あるいはC言語での書きにくさとかを実感できれば良さそうだから読んでみることに。

内容の流れは、並行とは何か、なぜ並行なのか、そのためにはどうすればいいかとかいった話があって、その後、各目的、そしてそれに必要な、実現するために逐次アルゴリズムの紹介、そしてそれをどのように考えて、どのようにして並行アルゴリズムのプログラムにするいった話が続いくといった感じ。そして最後にスレッドを利用したプログラムを書くために役立つ道具、デバッガーや計測ツール等の話。

本著の中で特に嬉しかったのが、OpenMPや、主にUnix、Linux系のOSのPOSIXスレッド等のライブラリーだけではなく、Windowsスレッドの話もあるということろ。これまで読んだ一般的なC言語のスレッドの話の本は、WindowsではCygwinやMinGWでWindows上にUnixの環境を構築してスレッドを利用する方法が書かれていても、Windowsスレッドの話はほとんど載っていないのが多かったから。偶然そうだっただけかもしれないけど。

本著を入手した目的の出てくるC言語のコードをGo言語で書き直してみるっていうのについては、POSIXスレッド(pthread)のコードは書き直せそうな感じのがあった。だから、最初の目的を達成することはできそう。

ということで、目的が達成できそうな本だったのはもちろんのこと、並行処理とは何かっていうことを再確認できたのも良かったし、今後少しずつ本著に出てくるC言語のコードをGo言語で書いてみたり、また、今はどうしてもとにかく速度が必要な機会はないけど、本来はそれが並行処理でプログラムを書く大きな理由の一つだから、もしそれが必要な機会があったら、本著で得たことを役立てることができればいいなぁと思った今日この頃。

0 コメント:

コメントを投稿