熊崎 宏樹:まずありません。それらはアトミックなRead-Modify-Write命令がない環境でアトミックなReadとWrite命令とスレッド数に比例する消費メモリで調停を取る方法であって、ほとんどの実用的なCPUがCASなりLLSCなりを備えている現代においては、理論的な限界を示す事にのみ意味があるトピックです。
しかしながら現代で本当にどこにも使い所がないかというと一応は応用の余地はあります。
例えばCASをサポートしていないlinearizableなKey-Value
Storeを複数のクライアントで協調しながら使いたい時はこういったアイデアをアプリケーションのレイヤーで実装する羽目になるかも知れません。
他にもハイパフォーマンスな並行データ構造を実装する時の使用済みメモリの解放可能判定(いわゆるSafe Memory
Reclaimation)の際に他のスレッドの状況を巡回して他のスレッドが走っていないかをパン屋アルゴリズムのように確認する事もあります。Wait-Freeデータ構造を実装する際はAnnounceArrayという共有配列の上で操作を開始した順序をパン屋のアルゴリズムと似た方法で調停します。Fetch-And-Add命令でアトミックなカウンタを回しても理論的には回りますが、そういう命令はペナルティも大きいのでたまに数字が重なる事やスレッド数に比例するメモリを使うことを呑めるのであればパン屋のアルゴリズムを応用して性能が伸びる事もあります。
温故知新というと陳腐ですが、先端の論文でも縛りプレイやトレードオフの果てに飛び出てきたりするので教養として頭の片隅に置いておくと面白いアルゴリズムではあります。