著者情報
執筆記事
-
2017/03/28
データフローの構築と実行をサポートする、Microsoft PPLの「Asynchronous Agents」
前回、Microsft PPL(Parallel Patterns LIbrary)の並列コンテナを紹介しました。PPLには他にも面白いマルチスレッドのからくりが仕込まれています。その中からデータフローの構築と実行をサポートしてくれるAsynchronous Agents(非同期エージェント)を軽くひとめぐり。
-
2017/02/02
スレッド間のデータ共有に使える「Microsoft PPLの並列コンテナ」
C++11で、<thread>、<future>、<mutex>などで定義されたスレッド・ライブラリが標準化されました。おかげで従来OSごとに異なるAPI(Linuxならpthread、WindowsならWinAPI)で実装してたスレッド周りが1つのコードで済むようになりました。しかしながら標準化されたのはスレッド絡みの基本的なものに限られていて、アプリケーション実装にはまだ足りないものが少なくありません。その一つがスレッド間のデータの共有(受け渡し)に使え...
-
2016/12/01
ページランクのアルゴリズムをC++で試してみる
前回Google Mockを紹介したこともあって、Googleがらみのトピックを探していたところ、"How Google Finds Your Needle in the Web's Haystack:GoogleはどうやってWebの干草の山から針を見つけ出すのか"というタイトルの解説記事に辿り着きました。Googleでの検索結果は有用な(あるいは人気のある)ページが検索リストの上位に並びます(広告云々は別として)。各ページの有用さの度合いを計算し、それをキーに並び替えを行っているのでしょう。...
-
2016/10/26
Google Mock:はじめの一歩
CodeZineでgtest(Google Test)を紹介したのは4年も前のこと。ひさしぶりにgtestのGitHubを覗いてみたらgtest 1.8.0がリリースされていました。この版の以前との大きな違いは"Mockのサポート"のようです。C++でMockを提供してくれるUnit Test Frameworkはそんなに多くはなかったと記憶しています。 Google製Mockの使い心地を試してみることにしました。
-
2016/08/03
「入れ替えを行わないソート」のおはなし
今回のお題は「ソート」です――なにをいまさらソートなんか、ではありますけど、先日少々変則的なソートを実装する必要に迫られ、プログラミングのトピックとして面白いんじゃないかと取り上げることにしました。要素の順序を入れ替えないソートのおはなしです。
-
2016/05/30
疎行列の計算を実装してグラフ理論をかじってみる
長いお休みの間コードを触ってないと休み明けのリハビリがしんどいので、それといった目的もなくVisual Studioと戯れておりました。せっかくだから(?)普段めったにやらない分野で遊ぼうと「グラフ理論を行列で学ぶ」ってお題でコードを書いてたんですけど、なんだか面白い結果が出てきちゃったので紹介しておきますね。
-
2016/04/20
50年前に作られたメモリ管理アルゴリズム「Buddy memory allocation」
4月ですねー、この世界に身を置いて三十数年目の春です。当時のノートを読み返すと、組み込み用途のメモリ管理ルーチンをアセンブラで書いたりしてました。黄ばんだノートの覚え書きの中から、メモリ確保/解放のスピードを重視したメモリ管理アルゴリズム:Buddy memory allocationを紹介しましょうか。