「沈黙し続けるよりも答える方が簡単です」 - トランザクション蚘憶の父、モヌリス・ハヌリヒヌぞの玠晎らしいむンタビュヌ

モヌリス・ハヌリヒヌ - XNUMX人のオヌナヌ ディクストラ賞。 XNUMX぀目は仕事甚です 「埅ち時間なしの同期」 (ブラりン倧孊) そしお XNUMX ぀目は、より最近のものです - 「トランザクション メモリ: ロックフリヌ デヌタ構造のアヌキテクチャ サポヌト」 (バヌゞニア工科倧孊)。 ダむクストラ賞は、少なくずも XNUMX 幎間にわたっお重芁性ず圱響力が顕著であった䜜品に授䞎されたす。圓然のこずながら、モヌリスはこの分野で最も有名な専門家の XNUMX 人です。 圌は珟圚ブラりン倧孊の教授であり、長い段萜にわたる業瞟を残しおいたす。 珟圚、圌は叀兞的な分散コンピュヌティングの文脈におけるブロックチェヌンの研究に埓事しおいたす。

以前、モヌリスはすでにSPTCCのためにロシアに来おいたしたビデオ録画) そしお、サンクトペテルブルクで JUG.ru Java 開発者コミュニティの玠晎らしい䌚合を開催したした (ビデオ録画).

このハブラポストは、モヌリス・ハヌリヒヌぞの玠晎らしいむンタビュヌです。 以䞋のトピックに぀いお説明したす。

  • 孊術界ず産業界ずの亀流。
  • ブロックチェヌン研究の財団。
  • 画期的なアむデアはどこから生たれるのでしょうか? 人気の圱響;
  • バヌバラ・リスコフの指導の䞋で博士号を取埗。
  • 䞖界はマルチコアを埅っおいたす。
  • 新しい䞖界、新しい問題。 NVM、NUMA、およびアヌキテクチャのハッキング。
  • コンパむラず CPU、RISC ず CISC、共有メモリずメッセヌゞ パッシング。
  • 脆匱なマルチスレッド コヌドを蚘述する技術。
  • 耇雑なマルチスレッド コヌドの曞き方を生埒に教える方法。
  • 曞籍「The Art of Multiprocessor Programming」の新版。
  • トランザクションメモリはどのようにしお発明されたのでしょうか?   
  • 分散コンピュヌティングの分野で研究を行う䟡倀がある理由。
  • アルゎリズムの開発は止たっおしたったのか、どうやっお生きおいくのか。
  • ブラりン倧孊で働く。
  • 倧孊ず䌁業の研究の違い。
  • ヒドラずSPTDC。

むンタビュヌは以䞋によっお実斜されたす。

ノィタリヌ・アクセノフ — 珟圚、IST オヌストリアの博士研究員であり、ITMO 倧孊のコンピュヌタ テクノロゞヌ孊郚の職員です。 競合デヌタ構造の理論ず実践の分野で研究に埓事。 IST に入瀟する前に、パリ ディドロ倧孊ず ITMO 倧孊でペトル クズネツォフ教授の䞋で博士号を取埗したした。

アレクセむ・フョヌドロフ は、開発者向けのカンファレンスを䞻催するロシアの䌁業である JUG Ru Group のプロデュヌサヌです。 Alexey は 50 以䞊のカンファレンスの準備に参加しおおり、圌の履歎曞には Oracle (JCK、Java Platform Group) の開発゚ンゞニアの職から Odnoklassniki の開発者の職たでのすべおが含たれおいたす。

りラゞミヌル・シトニコフ ネットクラッカヌの゚ンゞニアです。 圌は XNUMX 幎間、通信事業者がネットワヌクおよびネットワヌク機噚の管理プロセスを自動化するために䜿甚する゜フトりェアである NetCracker OS のパフォヌマンスずスケヌラビリティに取り組んできたした。 Java および Oracle Database のパフォヌマンスの問題に興味がありたす。 公匏 PostgreSQL JDBC ドラむバヌの XNUMX を超えるパフォヌマンス改善の著者。

孊術ず産業界の亀流

アレクセむ: モヌリス、あなたは非垞に長い間孊界で働いおきたしたが、最初の質問は孊界ず産業界の盞互䜜甚に぀いおです。 最近、圌らの間の亀流がどのように倉化したか教えおいただけたすか 2030幎前はどうだったのか、そしお今䜕が起こっおいるのか 

モヌリス: 営利䌁業は興味深い課題を抱えおいるため、私は垞に営利䌁業ず緊密に連携しようず努めおきたした。 䞀般に、圌らは自分たちの結果を䞖界瀟䌚に公開したり、問題を詳现に説明したりするこずにあたり興味がありたせん。 圌らはこれらの問題を解決するこずだけに興味がありたす。 私はこれらの䌚瀟のいく぀かでしばらく働いおいたした。 私は、か぀お倧手コンピュヌタ䌚瀟であった Digital Equipment Corporation の研究宀で XNUMX 幎間フルタむムで働きたした。 私は週に XNUMX 日、Sun、Microsoft、Oracle で働き、Facebook でも少し働きたした。 今私はサバティカル䌑暇アメリカの倧孊の教授は玄XNUMX幎に䞀床、XNUMX幎間の䌑暇をずるこずが認められおいたすに入っお、そこで働く぀もりです。 アルゎリズム、これはボストンにあるそんな暗号通貚䌚瀟です。 䌁業ず緊密に連携するこずは垞に楜しいこずであり、そうするこずで新しくお興味深いこずを孊ぶこずができるからです。 䞀般に、他の人がすでに取り組んでいる問題の解決策を埐々に改善するのではなく、遞択したトピックに関する蚘事を公開する最初たたは XNUMX 人目になるこずができたす。

Alexey: これがどのようにしお起こるのか、詳しく教えおいただけたすか?

モヌリス: もちろんです。 ご存知のずおり、私が Digital Equipment Corporation にいたずき、私ず゚リオット モスはトランザクション メモリを発明したした。 誰もが情報技術に興味を持ち始めた、ずおも充実した時期でした。 マルチコア システムはただ存圚しおいたせんでしたが、同時実行性も含たれおいたした。 Sun ず Oracle の時代、私は䞊列デヌタ構造に぀いお倚くの䜜業を行いたした。 Facebook では、私はそのブロックチェヌン プロゞェクトに参加しおいたした。これに぀いおは話すこずはできたせんが、近いうちに公開されるこずを願っおいたす。 来幎、私はアルゎランドでスマヌトコントラクトを研究する研究チヌムに所属する予定です。

Alexey: ここ数幎、ブロックチェヌンは非垞に人気のあるトピックになっおいたす。 あなたの研究に圹立ちたすか? おそらく、補助金の獲埗や、業界で掻動する䌁業のリ゜ヌスぞのアクセスが容易になるでしょうか?

モヌリス: 私はすでにむヌサリアム財団から少額の助成金を受け取りたした。 ブロックチェヌンの人気は、孊生にこの分野で働く意欲を䞎えるのに非垞に圹立ちたす。 圌らはこの研究に非垞に興味があり、喜んで参加したすが、衚面的には魅力的に芋える研究が、実際には本圓に倧倉な劎力を必芁ずするこずに気づいおいないこずがありたす。 しかし、私はブロックチェヌンに関するこの神秘性をすべお掻甚できるこずを非垞に嬉しく思っおいたす。これは孊生を匕き付けるのに圹立ちたす。 

しかし、それだけではありたせん。 私はいく぀かのブロックチェヌンスタヌトアップ䌁業の諮問委員䌚に所属しおいたす。 圌らの䞭には成功する人もいれば、そうでない人もいるかもしれたせんが、圌らのアむデアを芋お、研究し、人々にアドバむスするのは垞に非垞に興味深いものです。 最も興奮するのは、人々に䜕かをしないよう譊告するずきです。 倚くのこずは最初は良いアむデアのように思えたすが、本圓にそうでしょうか?

ブロックチェヌン研究の財団

ノィタリヌ: ブロックチェヌンずそのアルゎリズムが未来だず考える人もいたす。 たた、これは単なるバブルだず蚀う人もいたす。 この件に぀いおご意芋をお聞かせいただけたすか?

モヌリス: ブロックチェヌンの䞖界で起こっおいるこずの倚くは適切に機胜しおおらず、䞀郚は単なる詐欺であり、倚くのこずは過倧評䟡されおいたす。 しかし、これらの研究にはしっかりずした科孊的根拠があるず思いたす。 ブロックチェヌンの䞖界がむデオロギヌ䞊の分裂に満ちおいるずいう事実は、興奮ず熱意のレベルを瀺しおいたす。 䞀方で、科孊研究にずっおは特に有益ではありたせん。 さお、特定のアルゎリズムの欠点に぀いお語る蚘事を公開した堎合、受け取られる反応は必ずしも完党に科孊的であるずは限りたせん。 倚くの堎合、人は自分の感情を衚珟したす。 この分野でのこのような誇倧宣䌝は魅力的に芋える人もいるず思いたすが、結局のずころ、ただ察凊されおいない本圓の科孊的および工孊的問題が存圚したす。 ここにはコンピュヌタヌサむ゚ンスがたくさんありたす。

Vitaliy: ブロックチェヌン研究の基瀎を築こうずしおいるのですね?

モヌリス: 私は、科孊的、数孊的にしっかりずした孊問の基瀎を築こうずしおいたす。 そしお、問題の䞀郚は、他人のあたりに厳しい立堎を無芖するために、時には反論しなければならないこずです。 時々、テロリストや麻薬売人だけが興味を持぀分野でなぜ私が働いおいるのかず尋ねられるこずがありたす。 そのような反応は、あなたの蚀葉を盲目的に繰り返すフォロワヌの行動ず同じくらい無意味です。 真実はその䞭間にあるず思いたす。 ブロックチェヌンはただ瀟䌚や䞖界経枈に倧きな圱響を䞎えおいたせん。 しかし、おそらく、珟代のテクノロゞヌのおかげで、これは起こりたせん。 珟代のテクノロゞヌは発展し、将来的にはブロックチェヌンず呌ばれるものが非垞に重芁になりたす。 もしかしたら、それは珟代のブロックチェヌンのようにも芋えないかもしれたせんが、それは未解決の質問です。

人々が新しいテクノロゞヌを発明した堎合、圌らはそれをブロックチェヌンず呌び続けるでしょう。 ぀たり、今日の Fortran が 1960 幎代の Fortran 蚀語ずは䜕の関係もないのず同じように、誰もがそれを Fortran ず呌び続けたす。 UNIX の堎合も同様です。 「ブロックチェヌン」ず呌ばれるものはただ革呜を起こしおいたせん。 しかし、この新しいブロックチェヌンが今日誰もが奜んで䜿甚しおいるものず同じになるずは思えたせん。

画期的なアむデアはどこから生たれるのでしょうか? 人気の圱響

Alexey: ブロックチェヌンの人気は科孊的な芳点から新しい結果に぀ながりたしたか? 地域内の亀流が増え、孊生が増え、䌁業が増えたす。 この人気の高たりの成果はすでに出おいたすか?

モヌリス: 私がこれに興味を持ったのは、倚額の資金を調達したばかりの䌚瀟の公匏チラシを誰かが私に枡したずきでした。 圌女はに぀いお曞きたした ビザンチンの将軍の任務私はそれをよく知っおいたす。 リヌフレットに曞かれおいるこずは技術的に明らかに間違っおいたした。 これを曞いた人たちは問題の背埌にあるモデルをよく理解しおいたせんでした...それでもこの䌚瀟は倚額の資金を集めたした。 その埌、同瀟は密かにこのリヌフレットをより正確なバヌゞョンに差し替えたした。この䌚瀟の名前は蚀いたせんが。 圌らはただ存圚しおおり、非垞にうたくやっおいたす。 この事䟋で私は、第䞀に、ブロックチェヌンは分散コンピュヌティングの䞀圢態にすぎないこずを確信したした。 第二に、参入障壁圓時、XNUMX幎前は非垞に䜎かったです。 この分野で働いおいる人々は非垞に粟力的で賢いのですが、科孊論文を読みたせんでした。 圌らは既知のものを再発明しようずしたしたが、それは間違っおいたした。 今日、ドラマは瞮小されたした。

Alexey: ずおも興味深いですね、数幎前には違う傟向があったからです。 これはフロント゚ンド開発に䌌おおり、ブラりザ むンタヌフェむスの開発者が、システムの構築、継続的統合など、その圓時すでにバック゚ンドで普及しおいたテクノロゞ党䜓を再発明したした。 

モヌリス: 同意したす。 しかし、これは驚くべきこずではありたせん。なぜなら、真に画期的なアむデアは垞に確立されたコミュニティの倖から来るものだからです。 確立された研究者、特に孊術界の暩嚁は、真に画期的なこずを行う可胜性は䜎いです。 過去の仕事の結果をどのように少し改善したかに぀いお、次回のカンファレンスに向けおレポヌトを曞くのは簡単です。 カンファレンスに行き、友達ず集たり、同じこずに぀いお話したす。 そしお、画期的なアむデアを持っお参入する人は、ほずんどの堎合倖郚から来たす。 圌らはルヌルも蚀語も知りたせんが、それでも...もしあなたが確立されたコミュニティの䞭にいるのであれば、新しいもの、倧きなものにはたらないものに泚意を払うこずをお勧めしたす。写真。 ある意味、倖郚のより流動的な開発ず、私たちがすでに理解しおいる技術を組み合わせる詊みも可胜です。 最初のステップずしお、科孊的根拠を䜜成し、それを新しい画期的なアむデアに適甚できるように修正したす。 ブロックチェヌンは新たな画期的なアむデアずしおの圹割に最適だず思いたす。

アレクセむ: なぜこんなこずが起こったず思いたすか? 「倖郚」の人々にはコミュニティ固有の特別な障壁がないからでしょうか

モヌリス: ここにはパタヌンがありたす。 絵画や芞術党般における印象掟の歎史を玐解いおみるず、か぀おは有名な芞術家たちが印象掟を拒吊したこずがわかりたす。 圌らは、それはある皮の子䟛っぜさだず蚀いたした。 䞀䞖代埌、以前は吊定されおいたこの芞術圢匏が暙準になりたした。 私の分野で私が芋おいるのは、ブロックチェヌンの発明者たちは暩力や出版物や匕甚むンデックスの敎理には興味がなく、ただ䜕か良いこずをしたいず思っおいたずいうこずです。 そこで圌らは座っおそれを始めたした。 ある皋床の技術的な深みが欠けおいたしたが、それは修正可胜です。 新しい創造的なアむデアを思い぀くこずは、十分に成熟しおいないアむデアを修正したり拡匵したりするこずよりもはるかに困難です。 これらの発明者のおかげで、私にはやるべきこずができたした。

Alexey: これはスタヌトアップずレガシヌプロゞェクトの違いに䌌おいたす。 私たちは倚くの思考の制限、障壁、特別な芁件などを受け継いでいたす。

モヌリス: 分散コンピュヌティングが良い䟋です。 ブロックチェヌンを新興䌁業、分散コンピュヌティングを確立された倧䌁業であるかのように考えおください。 分散コンピュヌティングは買収され、ブロックチェヌンず統合され぀぀ありたす。

バヌバラ・リスコフの䞋で博士号を取埗

ノィタリヌ: ただたくさんの質問がありたす! 私たちはあなたの経歎を調査しおおり、博士号に関する興味深い事実を発芋したした。 はい、かなり前のこずですが、この話題は重芁のようです。 の監督の䞋で博士号を取埗したした バヌバラ・リスコフ Barbara はプログラミング蚀語開発コミュニティでは非垞によく知られおおり、䞀般的にも非垞に有名な人物です。 あなたの研究がプログラミング蚀語の分野であったこずは論理的です。 どのようにしお䞊列コンピュヌティングに切り替えたしたか? なぜ話題を倉えようず思ったのですか

モヌリス: 圓時、バヌバラず圌女のグルヌプは分散コンピュヌティングに泚目しおいたしたが、これは非垞に新しいアむデアでした。 分散コンピュヌティングはナンセンス、コンピュヌタ間の通信は無意味だずいう人もいた。 分散コンピュヌティングで考慮される問題の XNUMX ぀は、集䞭コンピュヌティングず区別され、フォヌルト トレランスです。 倚くの調査を行った結果、リモヌト呌び出しが成功するかどうかは決しお分からないため、分散コンピュヌティング甚のプログラミング蚀語ではアトミック トランザクションのようなものが必芁であるず刀断したした。 トランザクションが発生するず、同時実行制埡の問題が発生したす。 その埌、高床な䞊列トランザクション デヌタ構造を取埗するために倚くの䜜業が行われたした。 そしお卒業したずきに行ったのが、 カヌネギヌメロン そしお仕事のテヌマを探し始めたした。 コンピュヌティングが個々のコンピュヌタヌからコンピュヌタヌのネットワヌクに移行したのではないかず思い぀きたした。 進歩の自然な継続はマルチプロセッサです。圓時は「マルチコア」ずいう蚀葉は存圚しおいたせんでした。 私は、マルチコア システムのアトミック トランザクションに盞圓するものは䜕だろうず考えたした。 サむズが倧きすぎお重いため、通垞のトランザクションではありたせん。 そしおそれが私がアむデアを思い぀いた方法です 線圢化可胜性 こうしお私は埅機なしの同期を思い぀きたした。 これは、共有メモリを備えたマルチプロセッサ システムのアトミック トランザクションに盞圓するものは䜕かずいう質問に答える詊みでした。 䞀芋するず党く違う䜜品に芋えたすが、実は同じテヌマの続きです。

マルチコアを埅぀䞖界

Vitaly: 圓時はマルチコア コンピュヌタヌがほずんどなかったずおっしゃいたしたよね?

モヌリス: 存圚しなかっただけなんです。 いわゆる察称マルチプロセッサがいく぀かあり、基本的に同じバスに接続されおいたした。 新しい䌚瀟がこのようなものを開発するたびに、Intel はマルチプロセッサを䞊回るパフォヌマンスの単䞀プロセッサをリリヌスしたため、あたりうたく機胜したせんでした。

アレクセむ: ずいうこずは、叀代においおは理論的な研究が倚かったずいうこずではないでしょうか?

モヌリス: それは理論的なものではなく、むしろ思玢的な研究でした。 これはすべお、倚くの定理を扱うこずではなく、むしろ、圓時存圚しなかったアヌキテクチャに぀いおの仮説を提案したした。 研究ずはそのためにあるのです どの䌁業もこれを実行するこずはなく、すべお遠い未来のこずでした。 実際、これは本物のマルチコア プロセッサが登堎する 2004 幎たでのこずでした。 プロセッサヌは過熱するため、プロセッサヌをさらに小さくするこずはできたすが、高速化するこずはできたせん。 このため、マルチコア アヌキテクチャぞの移行が行われたした。 そしおそれは、私たちが過去に開発したすべおの抂念が突然䜿甚されるこずを意味したした。

Alexey: マルチコア プロセッサが XNUMX 幎代になっお初めお登堎したのはなぜだず思いたすか? では、なぜこんなに遅いのでしょうか

モヌリス: それはハヌドりェアの制限によるものです。 Intel、AMD、その他の䌁業は、プロセッサ速床の高速化に非垞に優れおいたす。 ある時点でプロセッサが十分に小さくなり、プロセッサが焌き切れ始めおクロック速床を䞊げるこずができなくなったずき。 小さくするこずはできたすが、速くするこずはできたせん。 圌らの胜力は䜕ですか - 非垞に小さなプロセッサの代わりに、以前は XNUMX ぀しか収たらなかったケヌスの同じ䜓積に XNUMX ぀、XNUMX ぀、たたは XNUMX 個のプロセッサを収めるこずができたす。 キャッシュを共有するため、それらの間でマルチスレッドず高速通信が可胜になりたす。 ただし、より速く実行するこずはできたせん。非垞に具䜓的な速床制限がありたす。 少しず぀改善し続けおいたすが、それほど倧きくはありたせん。 物理法則が邪魔をしおしたいたした。

新しい䞖界、新しい問題。 NUMA、NVM、およびアヌキテクチャのハッキング

アレクセむ: ずおも合理的ですね。 新しいマルチコア プロセッサでは、新たな問題が発生したした。 あなたやあなたの同僚はこうした問題を予想しおいたしたか? おそらく事前に勉匷したこずがあるのではないでしょうか 理論的研究では、そのようなこずを予枬するのはそれほど簡単ではないこずがよくありたす。 問題が発生したずき、それはあなたや同僚の期埅にどの皋床応えられたしたか? それずも、それらはたったく新しいもので、問題が発生するず、あなたず同僚はその解決に倚くの時間を費やす必芁がありたしたか?

Vitaliy: Alexey の質問に远加したす。理論を勉匷しおいるずきに、プロセッサのアヌキテクチャを正しく予枬したしたか?

モヌリス: すべおが 100% ずいうわけではありたせん。 しかし、同僚ず私は共有メモリ マルチコアをうたく​​予枬できたず思いたす。 ロックなしで動䜜する䞊列デヌタ構造を蚭蚈するこずの難しさを正しく予枬できたず思いたす。 このようなデヌタ構造は、すべおのアプリケヌションではありたせんが、倚くのアプリケヌションにずっお重芁ですが、実際にはロックフリヌのデヌタ構造が必芁になるこずがよくありたす。 私たちがそれらを発明したずき、倚くの人が、これはナンセンスであり、ロックを䜿甚すればすべおが正垞に機胜する、ず䞻匵したした。 私たちは、倚くのプログラミングの問題やデヌタ構造の問題に察しお既成の解決策が存圚するこずを十分に予芋しおいたした。 次のような、より耇雑な問題もありたした。 沌 – 䞍均䞀なメモリアクセス。 実際、それらは特殊すぎるため、マルチコア プロセッサが発明されるたで考慮されるこずさえありたせんでした。 研究コミュニティは、䞀般的に予枬可胜な疑問に取り組みたした。 特定のアヌキテクチャに関連する䞀郚のハヌドりェア問題は、実際には、これらのアヌキテクチャの出珟を埅たなければなりたせんでした。 たずえば、圓時は GPU が存圚しなかったため、GPU 固有のデヌタ構造に実際に取り組む人は誰もいたせんでした。 倚くの䜜業が行われおきたしたが、 SIMD、これらのアルゎリズムは、適切なハヌドりェアが登堎するずすぐに䜿甚できるようになりたした。 ただし、すべおを予枬するこずは䞍可胜です。

Alexey: 私の理解が正しければ、NUMA はコスト、パフォヌマンス、その他の芁玠の間の劥協点のようなものです。 なぜ NUMA がこれほど遅れたのか、心圓たりはありたすか?

Maurice: NUMA が存圚するのは、メモリを䜜成するために䜿甚されるハヌドりェアに問題があるためだず思いたす。コンポヌネントが遠くなるほど、アクセスが遅くなりたす。 䞀方、この抜象化の XNUMX 番目の倀は、メモリの均䞀性です。 したがっお、䞊列コンピュヌティングの特城の XNUMX ぀は、すべおの抜象化がわずかに壊れおいるこずです。 アクセスが完党に均䞀であれば、すべおのメモリは等距離になりたすが、これは経枈的に䞍可胜であり、おそらく物理的に䞍可胜です。 したがっお、この察立が生じたす。 メモリが均䞀であるかのようにプログラムを䜜成すれば、おそらくそれは正しいでしょう。 間違った答えを出さないずいう意味で。 しかし、空からの圌女のスタヌのパフォヌマンスは掎めたせん。 同様に、次のように曞くず、 スピンロック キャッシュの階局を理解しおいなくおも、ロック自䜓は正しく行われたすが、パフォヌマンスのこずを忘れおしたう可胜性がありたす。 ある意味、非垞に単玔な抜象化の䞊に動䜜するプログラムを曞かなければなりたせんが、その抜象化を䞎えた人々を出し抜く必芁がありたす。抜象化の䞋には䜕らかのメモリの階局があるこず、぀たり、あなたずこの蚘憶を結ぶバスなど。 したがっお、それ自䜓では圹立぀抜象化の間には矛盟があり、それが非垞に具䜓的で実甚的な問題に぀ながりたす。

ノィタリヌ: 将来に぀いおはどうですか? プロセッサが今埌どのように発展するかを予枬できたすか? その答えの XNUMX ぀がトランザクション メモリであるずいう考えがありたす。 おそらく他にも圚庫があるず思いたす。

モヌリス: 今埌は倧きな課題がいく぀かありたす。 2000 ぀は、䞀貫した蚘憶は玠晎らしい抜象抂念ですが、特殊な堎合には壊れ始めるずいうこずです。 たずえば、NUMA は、均䞀なメモリが存圚するかのように装うこずができるものの生きた䟋です。 実は――いや、この挔技は泣ける。 ある時点で、アヌキテクトはナニファむド メモリ アヌキテクチャのアむデアを攟棄する必芁がありたすが、氞遠にそうするこずはできたせん。 十分に䜿いやすく、基盀ずなるハヌドりェアを効率的にするのに十分匷力な、新しいプログラミング モデルが必芁になりたす。 これは非垞に難しい劥協策です。ハヌドりェアで実際に䜿甚されおいるアヌキテクチャをプログラマに芋せたら、プログラマは激怒するでしょう。 耇雑すぎお移怍性がありたせん。 シンプルすぎるむンタヌフェむスを衚瀺するず、パフォヌマンスが䜎䞋したす。 したがっお、実際に倧芏暡なマルチコア プロセッサに適甚できる有甚なプログラミング モデルを提䟛するには、倚くの非垞に困難な劥協を行う必芁がありたす。 狭い専門家以倖の人が XNUMX コアのコンピュヌタヌでプログラミングできるかどうかはわかりたせん。 そしお、非垞に専門的たたは科孊的なコンピュヌティング、暗号化などを行っおいる堎合を陀き、それを正しく行う方法は䟝然ずしおたったく明らかではありたせん。 

もう XNUMX ぀の同様の方向性は、特化されたアヌキテクチャです。 グラフィック アクセラレヌタは長い間存圚しおいたしたが、すでに特殊な皮類の蚈算を専甚チップ䞊で実行する方法の兞型的な䟋ずなっおいたす。 これにより、そのようなデバむスずどのように通信するか、どのようにプログラムするかずいう独自の課題が加わりたす。 最近、珟堎での仕事に取り組んでいたした ニアメモリコンピュヌティング。 小さなプロセッサを巚倧なメモリの塊に接着しお、メモリが L1 キャッシュ速床で動䜜するようにしお、次のようなデバむスず通信したす。 TPU - プロセッサは新しいタスクをメモリ コアにロヌドしおビゞヌ状態です。 この皮のデヌタ構造ず通信プロトコルの開発も興味深い䟋です。 したがっお、特殊なプロセッサずハヌドりェアは、かなり長い間改良が加えられるこずになりたす。

Alexey: 䞍揮発性メモリに぀いおはどうですか (䞍揮発性メモリ)?

モヌリス: ああ、それも玠晎らしい䟋ですね! NVM は、デヌタ構造などに察する芋方を倧きく倉えるでしょう。 䞍揮発性メモリは、ある意味、凊理を倧幅に高速化するこずを玄束したす。 しかし、ほずんどのプロセッサ、キャッシュ、レゞスタは䟝然ずしお揮発性であるため、䜜業が楜になるわけではありたせん。 クラッシュ埌に起動した堎合、ナヌザヌの状態ずメモリの状態はクラッシュ前ずたったく同じではありたせん。 NVM に携わった人々に非垞に感謝しおいたす。研究者は、長い間、正確性の条件を解明するために䜕かをしなければなりたせん。 キャッシュずレゞスタの内容が倱われるクラッシュに耐えるこずができおも、メむン メモリがそのたた残る堎合、蚈算は正しく行われたす。

コンパむラず CPU、RISC ず CISC、共有メモリずメッセヌゞ パッシング

Vladimir: 呜什セットに関するコンパむラずプロセッサのゞレンマに぀いおはどう思いたすか? この䞻題に関係のない人のために説明するず、䞍均䞀なメモリなどに移行した堎合、非垞に単玔な呜什セットを適甚し、発芋された利点を掻甚できる耇雑なコヌドを生成するようにコンパむラヌに䟝頌できたす。 あるいは、別の方法を遞択するこずもできたす。぀たり、耇雑な呜什を実装し、プロセッサに呜什の順序を倉曎したり、それらの呜什で他の操䜜を実行したりするように䟝頌するこずもできたす。 あなたはそれに぀いおどう思いたすか

モヌリス: その質問にはあたり答えられたせん。 この議論はXNUMX幎間続いおいたす。 間に時間があった 省略された コマンドセットず 耇雑な 内戊は䞀連のチヌムによっお行われた。 しばらくの間、RISC 担圓者が勝利したしたが、その埌、むンテルは、瞮小された呜什セットが内郚で䜿甚され、完党な呜什セットが倖郚に゚クスポヌトされるように゚ンゞンを再構築したした。 おそらくこれは、新しい䞖代それぞれが独自の劥協点を芋぀け、独自の決定を䞋さなければならないテヌマです。 これらのうちどれがより良い結果をもたらすかを予枬するこずは非垞に困難です。 したがっお、私が行う予枬は、䞀定期間は真実になり、その埌しばらくの間は再び誀りになり、その埌再び真実になりたす。

Alexey: いく぀かのアむデアが数十幎にわたっお成功し、次の幎には倱われるずいうこずは業界党䜓でどのくらい䞀般的ですか? このような定期的な倉曎の䟋は他にもありたすか?

モヌリス: 分散コンピュヌティングの分野では、次のこずを信じおいる人たちがいたす。 共有メモリ そしおそれを信じる人々 メッセヌゞ亀換。 もずもず分散コンピュヌティングでは、䞊列コンピュヌティングはメッセヌゞ パッシングを意味したす。 その埌、メモリを共有するずプログラミングがはるかに簡単になるこずを誰かが発芋したした。 盞手偎は、共有メモリはロックなどが必芁なため耇雑すぎるため、メッセヌゞパッシングのみが単玔に存圚する蚀語に移行する䟡倀があるず述べたした。 そこから出おきたものを芋お、誰かがこう蚀いたした。「すごい、このメッセヌゞング実装は共有メモリに非垞によく䌌おいたす。なぜなら、これらの小さなモゞュヌルをたくさん䜜成し、それらは盞互にメッセヌゞを送信し、それらはすべお共有メモリに䌌おいるからです」 デッドロック, - 共有メモリ デヌタベヌスをより良くしたしょう!」 こうしたこずはすべお䜕床も繰り返され、どちらかの圓事者が明確に正しいずは蚀えたせん。 どちらかが勝ちそうになるずすぐに、人々はもう䞀方を改善する方法を䜕床も䜕床も発明するため、どちらかが垞に優勢になりたす。

脆匱なマルチスレッド コヌドを蚘述する技術

アレクセむ: それはずおも興味深いですね。 たずえば、コヌドを蚘述するずきは、どのようなプログラミング蚀語であっおも、通垞は読み曞きできるセルのような抜象化を䜜成する必芁がありたす。 しかし実際には、物理​​レベルでは、異なるコンピュヌタヌず他のデバむスの間でハヌドりェア バス䞊でメッセヌゞを送信しおいるように芋える堎合がありたす。 䞡方の抜象レベルで同時に䜜業が行われるこずがわかりたす。

Maurice: 共有メモリがバスやキャッシュなどのメッセヌゞ パッシングに基づいお構築されおいるのは間違いありたせん。 しかし、メッセヌゞ パッシングを䜿甚しおプログラムを䜜成するのは難しいため、ハヌドりェアは意図的に嘘を぀き、ある皮の均䞀なメモリがあるかのように装いたす。 これにより、パフォヌマンスが䜎䞋し始める前に、シンプルで正しいプログラムを簡単に䜜成できるようになりたす。 次に、「キャッシュず友達になる時期が来たようです」ず蚀いたす。 キャッシュの堎所に぀いお心配し始めるのはこのずきです。その埌、䜜業を​​始めたす。 ある意味、抜象化を打ち砎るこずになりたす。぀たり、それが単なるフラットで均䞀なメモリではないこずがわかっおおり、その知識を利甚しおキャッシュに優しいプログラムを䜜成するこずになりたす。 これは実際のタスクで行う必芁があるこずです。 あなたに䞎えられたシンプルで優れた抜象化ず、基瀎ずなるハヌドりェアの非垞に耇雑な実装ずの間のこの矛盟は、誰もが独自の劥協をするずころです。 私はマルチプロセッサず同期に関する本を持っおいたすが、ある日、その本のデヌタ構造に関する章を曞こうず思っおいたした。 java.util.concurrent。 それらを芋おみるず、次のようなこずが スキップリスト これらは玠晎らしい芞術䜜品です。 (線集者泚: Java 蚀語に粟通しおいる人は、少なくずも実装を確認しおください。 同時スキップリストマップ、 のリンクを芋るこずができたす API О ゜ヌスコヌド。 しかし、私の芳点からは、これらのデヌタ構造を孊生に芋せるのは無責任だず思いたす。なぜなら、そのようなデヌタ構造は、クマの穎の䞊を綱枡りするサヌカスのようなものだからです。 ほんの小さな郚分を倉えるだけで、党䜓の構造が厩れおしたいたす。 このコヌドは完党に蚘述されおいるため非垞に高速で゚レガントですが、ほんのわずかな倉曎が完党な倱敗に぀ながりたす。 このコヌドを䟋ずしお生埒に教えるず、生埒はすぐに「これなら私にもできる」ず蚀うでしょう。 そしお、飛行機が墜萜したり、原子炉が爆発したりするでしょう。適切なタむミングであたりにも倚くの情報を圌らに提䟛しなかった私のせいになりたす。

Alexey: 私はもう少し若かった頃、Doug Lee の゜ヌス コヌドを䜕床も研究しようずしたした。たずえば、 java.util.concurrent、オヌプン゜ヌスであるため、芋぀けお、そこで䜕が起こっおいるのかを理解しようずするのは非垞に簡単です。 それはあたり良い結果にはなりたせんでした。倚くの堎合、他の人は違うやり方をしおいるのに、なぜダグがこの方法で䜕かをしようず決めたのかが完党に䞍明瞭になりたす。 これらのこずを生埒にどのように説明したすか? たずえば、ハヌドコア アルゎリズムの特定の詳现を蚘述する特定の正しい方法はありたすか? どうやっおやるのですか

モヌリス: 絵を描く教垫が最初に芚える決たり文句がありたす。ピカ゜のように絵を描きたいなら、たず簡単で写実的な絵を描く方法を孊ばなければなりたせん。ルヌルを知っお初めおルヌルを砎り始めるこずができたす。 すぐにルヌルを砎っお始めるず、混乱が生じたす。 たず、パフォヌマンスを気にせずに、シンプルで正しいコヌドを曞く方法を生埒に教えたす。 ここには耇雑なタむミングの問題が朜んでいるので、キャッシュやメモリ モデルに぀いお心配する必芁はなく、すべおが適切に動䜜するこずを確認しおください。 それはすでに十分に難しいこずです。特に新入生にずっお、最新のプログラミングはそれ自䜓が簡単ではありたせん。 そしお、圌らが正しいプログラムの曞き方に぀いお盎芳を持っおいるずき、私は次のように蚀いたす。これら XNUMX ぀のスピンロック実装を芋おください。XNUMX ぀は非垞に遅く、XNUMX ぀目もあたり良くありたせんが、すでに改善されおいたす。 ただし、数孊的には、これら XNUMX ぀のアルゎリズムは同じです。 実際、そのうちの XNUMX ぀はキャッシュの局所性を䜿甚したす。 そのうちの XNUMX ぀はロヌカルにキャッシュされたデヌタに基づいお回転し、もう XNUMX ぀はバスを介しお操䜜を繰り返し実行したす。 コヌドを理解しおいなければ、抜象化を砎っお基瀎構造を調べる方法を知らなければ、効率的なコヌドを曞くこずはできたせん。 しかし、すぐにそれを始めるこずはできたせん。 すぐにこれを始めお自分の倩才を信じおいる人がいたすが、原則を理解しおいないため、たいおいはひどい結果に終わりたす。 ピカ゜のように絵を描いたり、倧孊を卒業したばかりのダグ・リヌのように最初の週にプログラムを曞いたりする人は誰もいたせん。 このレベルの知識に到達するには䜕幎もかかりたす。

Alexey: あなたは問題を XNUMX ぀の郚分に分けおいるこずがわかりたした。XNUMX ぀は正確性で、XNUMX ぀目はパフォヌマンスですか?

モヌリスその通りです。 で、その順番で。 問題の䞀郚は、正しさを達成するのが難しいこずを新入生が理解しおいないこずです。 圌らは䞀芋するず、「これは明らかに正しい、あずはスピヌドを䞊げるだけだ」ず蚀いたす。 そのため、本質的に間違っおいるアルゎリズムに぀いお、あたかも正しいかのように圌らに䌝えるこずがありたす。

耇雑なマルチスレッドコヌドの曞き方を孊生に教える方法

アレクセむ: 圌らがトリックを感知できるかどうかを確認するためですか

モヌリス: 私はい぀も、間違ったアルゎリズムを思い぀くこずがあるずいうこずを事前に譊告しおいたす。 人を隙しおはいけたせん。 圌らはその情報に぀いお懐疑的になるこずをお勧めしたす。 私が䜕かを話しお、「ほら、これは明らかに正しいです」ず蚀ったら、これは圌らがどこかであなたをだたそうずしおいるずいう合図なので、あなたは質問を始めるべきです。 次に、私は生埒たちに質問を続けるよう促し、「すべおをこのたたにしおおくずどうなりたすか?」ず促したす。 そしおすぐに゚ラヌに気づきたす。 しかし、正しさに぀いお心配する必芁があるこずを生埒に玍埗させるのは、䞀芋したよりも難しいです。 孊生の倚くは高校時代にプログラミング経隓があり、すでに就職しおそこでプログラミングをしおいる人もおり、党員が自信に満ちおいたす。 これは軍事的なものです。新たな問題の解決に蟛抱匷く取り組むよう圌らを説埗するには、たず圌らの考え方を倉える必芁がありたす。 あるいは、仏教の僧䟶のようなものかもしれたせん。たず圌らは正しさに぀いお掚論するこずを孊び、正しさに぀いお掚論する方法を理解したら、次のレベルに進んでパフォヌマンスに぀いお心配し始めるこずができたす。

Alexey: ぀たり、機胜しない䟋を生埒に芋せるこずもありたす。そのおかげで、生埒が問題の本質を理解しおいるかどうか、間違ったコヌドや間違った結果を芋぀けるこずができるかどうかを瀺すフィヌドバックが埗られたす。 さお、生埒たちは普段どのように喜ぶか、あるいは動揺するのでしょうか?

モヌリス: ほずんどの堎合、生埒は最終的に間違いを芋぀けたす。 圌らの怜玢が遅すぎる堎合は、私は誘導的な質問をしたす。ここで重芁なのは、圌らが決しお隙されなければ、圌らはあなたの蚀葉を究極の真実ずしお軜率に認識し始めるこずを理解するこずです。 そしお、授業䞭にラップトップで Facebook を読みながら退屈しお眠っおしたいたす。 しかし、隙されるこず、トリックを察知しないずバカにされるこずを事前に知らせるず、圌らはより譊戒するようになりたす。 これは倚くの点で良いこずです。 生埒たちには、自分自身の問題の理解を問うだけでなく、教垫の暩嚁にも疑問を抱いおほしいず思いたす。 孊生がい぀でも手を挙げお「今蚀ったこずは間違っおいるず思いたす」ず蚀えるずいう考えです。 重芁な孊習ツヌルです。 孊生たちには、座っお黙っお考えおほしくありたせん。これはたったくナンセンスに思えたすが、手を䞊げるのは怖すぎたす。実際、圌は教授なので、圌の蚀うこずはすべお真実です。 したがっお、語られるこずがすべお必ずしも真実であるずは限らないずいうこずを事前に譊告されれば、その内容にもっず泚意を払う動機が生たれたす。 手を挙げお質問するのは問題ないずはっきり蚀いたす。 あなたの質問はばかばかしく、玠朎に聞こえるかもしれたせんが、倚くの堎合、それが最良の質問を生み出す方法です。

アレクセむ: ずおも興味深いですね。 通垞、人々には教授に質問するこずを劚げる䜕らかの心理的障壁がありたす。 特に、郚屋にたくさんの人がいお、あなたの愚かな質問に぀いお話し合うこずで党員の時間が奪われるのではないかず誰もが心配しおいる堎合にはなおさらです。 これに察凊するコツはありたすか

モヌリス: 私はよく立ち止たっお叀兞的な質問をしたす。 どのような発蚀も正しいのでしょうか、それずも議論されおいる問題をどのように解決するのでしょうか。 これは、特に些现なこずでも蚀うのが恥ずかしいセッションの開始時には重芁なステップです。 あなたは生埒たちに質問をしたすが、それ以䞊は䜕も蚀いたせん。 沈黙があり、党員が少し緊匵し、緊匵が高たりたしたが、突然誰かが泣き厩れお答えを蚀いたした。 そこであなたは状況を明らかにしたす。答えるよりも沈黙を保぀方が難しく、䞍快になりたす。 これは暙準的な教育䞊のトリックです。 䞖界䞭のすべおの教垫はこれを行う方法を知っおいる必芁がありたす。

アレクセむ: このむンタビュヌに玠晎らしいタむトルが付けられたした。「沈黙するよりも答える方が簡単です」。

ノィタリヌ: もう䞀぀聞いおみたしょう。 あなたはトポロゞカルな蚌明に取り組んでいたす。 分散コンピュヌティングずトポロゞヌはたったく別のものなので、どうやっおこれに関わるようになったのでしょうか。

モヌリス: そこには隠された関係がありたす。 私は孊生時代に数孊を勉匷しおいたしたが、玔粋数孊を勉匷しおいたした。 私は倧孊を卒業するたでコンピュヌタにたったく興味がなかったのですが、急遜仕事を探す必芁に迫られたのです。 孊生時代、私は代数トポロゞヌを勉匷したした。 䜕幎も埌、ず呌ばれる問題に取り組んでいたずき、 「k-セット合意問題」, 私はグラフを䜿甚しお問題をモデル化し、そのずきのように、解決策を芋぀けたした。 ただ座っおグラフを䞀呚するだけで枈みたした。 このグラフから適切な答えを芋぀けおください。 しかし、私のアルゎリズムは機胜したせんでした。圌は垞に円を描いお走るこずが刀明したした。 残念ながら、これらはすべお、すべおのコンピュヌタ科孊者が知っおいるグラフ理論ずいう圢匏蚀語では説明できたせん。 そしお、䜕幎も前に、トポロゞヌの授業でも、この抂念を䜿甚しおいたこずを思い出したした。 「単玔なコンプレックス」、これはグラフを高次元に䞀般化したものです。 そこで私は自問したした。この問題を単玔耇合䜓の芳点から再定匏化したらどうなるでしょうか? これが鍵ずなりたした。 より匷力な圢匏䞻矩を䜿甚するず、問題は突然はるかに単玔になりたす。 人々はグラフを䜿っお長い間苊劎したしたが、䜕もできたせんでした。 そしお今でもそれはできたせん。正解はアルゎリズムではなく、問題解決が䞍可胜であるこずの蚌明でした。 ぀たり、そのようなアルゎリズムは単玔に存圚したせん。 しかし あらゆる䞍可胜性の蚌明 それは単玔な耇合䜓、たたは人々が単玔な耇合䜓を考慮しおいないふりをしおいるもののいずれかに基づいおいたす。 䜕かを新しい名前で呌んだずいう事実から、それは本質を倱うこずはありたせん。

Vitaliy: 結局のずころ、あなたはただ幞運だったのですか

モヌリス: 運に加えお、 レディネス。 ぀たり、以前に孊んだ「圹に立たない」こずを忘れおはなりたせん。 圹に立たないこずを孊べば孊ぶほど、新しい問題に盎面したずきにより倚くの掞察を匕き出せるようになりたす。 この皮の盎感的なパタヌン マッチングは重芁です。なぜなら... 蚀っおおきたすが、これは連鎖です。最初は、グラフが完党に機胜しないか、たったく機胜しないこずがわかりたした。XNUMX 幎前のこずを思い出したした。そしお私たちがこれらすべおの単玔な耇合䜓を研究した孊生時代。 これにより、叀いトポロゞヌの教科曞を芋぀けお頭の䞭に読み蟌むこずができたした。 しかし、もしその叀い知識がなかったら、元の問題の解決は決しお前進しなかったでしょう。

『The Art of Multiprocessor Programming』の新版

アレクセむ: あなたは自分の本に぀いお少し蚀いたしたね。 あなたがマルチスレッドに関する䞖界で最も有名な本を曞いたこずはおそらく最倧の秘密ではありたせん。 「マルチプロセッサプログラミングの技術」。 圌女はもう11歳くらいですが、それ以来出おきたばかりです  改蚂再版。 第二版は出るのでしょうか

モヌリス: 質問しおよかったです! もうすぐですね、あずXNUMXか月くらいでしょうか。 著者がさらに XNUMX 人いお、さらに倚くの資料を远加し、フォヌク/ゞョむン䞊列凊理に関するセクションを改善し、MapReduce に関するセクションを䜜成し、倚くの新しいものを远加し、䞍芁なものを削陀したした。執筆時点では非垞に興味深いものでした。初版ですが、珟圚はありたせん。 それは非垞に真剣に改蚂された本であるこずが刀明したした。

アレクセむ: すべおはすでに完了したした。あずはリリヌスするだけですか?

モヌリス: ただいく぀かの章に取り組む必芁がありたす。 私たちの出版瀟は圌はすでに私たちのこずを嫌っおいるず思いたす、私たちがもっず早く仕事をするべきだず今でも䌝えようずしおいたす。 予定よりかなり遅れおいたす。 理論的には、この本を数幎早く出版できたかもしれたせん。

アレクセむ: クリスマス前にこの本の新しいバヌゞョンを手に入れる機䌚はありたすか?

モヌリス: それが私たちの目暙です! しかし、私は䜕床も勝利を予蚀しおきたので、もう誰も信じおくれたせん。 この件に関しおも私をあたり信甚しないほうがいいかもしれたせん。

アレクセむ: いずれにしおも、これは玠晎らしいニュヌスです。 私はこの本の初版がずおも気に入りたした。 私はファンだず蚀えるでしょう。

モヌリス: 新しい版があなたの熱意に応えられるこずを願っおいたす、ありがずう!

トランザクションメモリがどのように発明されたか

Vitaly: 次の質問はトランザクション メモリに぀いおです。 私の理解する限り、あなたはこの分野の先駆者であり、誰もそのようなこずを考えおいなかった時代にそれを発明したのです。 なぜこの地域に移䜏しようず思ったのですか あなたにずっおトランザクションが重芁だったのはなぜですか? い぀か鉄で具珟化されるず思っおいたしたか

モヌリス: 私は倧孊院で孊んでいた頃からトランザクションに぀いお知っおいたした。

Vitaliy: はい、しかし、これらは別の取匕です。

モヌリス: 私は Elliott Moss ず協力しおノンブロッキング ガベヌゞ コレクションに取り組みたした。 私たちの問題は、メモリ内のいく぀かのワヌドをアトミ​​ックに倉曎するこずで、アルゎリズムが非垞にシンプルになり、少なくずも䞀郚はより効率的になるずいうこずでした。 䜿甚する 比范亀換 のために ロヌドリンク/ストア条件付き䞊列アヌキテクチャによっお提䟛されるので、䜕かを行うこずは可胜ですが、間接的なレベルに察凊する必芁があるため、非垞に非効率的で醜いものになりたす。 メモリワヌドを倉曎したいのですが、倉曎する必芁があるのは XNUMX ぀のポむンタしか倉曎できないためです。そのため、ポむンタは䜕らかのディレクトリのような構造を指す必芁がありたす。 ハヌドりェアを倉曎しお同時録画できるようになればどんなに玠晎らしいだろう、ずいう話をしたした。 Elliot はこれに気づいたようです。キャッシュ コヒヌレンシ プロトコルを芋るず、必芁な機胜のほずんどがすでに提䟛されおいたす。 楜芳的なトランザクションでは、キャッシュ䞀貫性プロトコルがタむミング競合の存圚を認識し、キャッシュが 無効。 キャッシュ䞊で投機的にトランザクションを開始し、競合を怜出するためにコヒヌレンス プロトコルのメカニズムを䜿甚するずどうなるでしょうか? 投機的なハヌドりェア アヌキテクチャの蚭蚈は簡単でした。 それで私たちはこう曞きたした 䞀番最初の出版物 トランザクションメモリに぀いお。 同時に、私が働いおいた䌚瀟、Digital Equipment Corporation は、Alpha ず呌ばれる新しい 64 ビット プロセッサを開発しおいたした。 そこで、私は Alpha 開発チヌムに玠晎らしいトランザクション メモリに぀いおプレれンテヌションをしに行きたした。そしお圌らはこう尋ねたした。「これをすべおプロセッサに盎接組み蟌んだら、圓瀟はどのような远加収入を埗られるでしょうか?」 私は技術者であり、マヌケティングの専門家ではないので、それに察する答えはたったくありたせんでした。 本圓に䜕も蚀うこずがありたせんでした。 圌らは私が䜕も知らなかったこずにあたり感銘を受けたせんでした。

ノィタリヌ䜕十億も 「数十億」ずだけ蚀っおください

モヌリス: はい、そう蚀うべきでした。 今はスタヌトアップなどの時代で、私は事業蚈画の曞き方を知っおいたす。 朜圚的な利益の倧きさに぀いおは倚少の嘘を぀いおも倧䞈倫だずいうこず。 でも、圓時はそれが甘かったので、「わかりたせん」ずだけ蚀いたした。 トランザクション メモリに関する出版物の履歎を芋るず、2004 幎埌にはこの論文ぞの蚀及がいく぀かあったこずがわかりたすが、その埌玄 XNUMX 幎間、誰もこの蚘事をたったく匕甚したせんでした。 この匕甚は、真のマルチコアが登堎した XNUMX 幎頃に登堎したした。 䞊列コヌドを曞くこずでお金が儲かるこずを人々が発芋するず、新しい研究が始たりたした。 ラノィ・ラゞワヌル 蚘事を曞きたした、これは䜕らかの圢でトランザクションメモリの抂念を䞻流に導入したした。 (線集者泚: この蚘事には 2010 幎にリリヌスされた第 XNUMX バヌゞョンがあり、無料で入手できたす) PDFずしお。 突然、人々はこれらすべおがどのように正確に䜿甚できるか、ロックを䜿甚しお埓来のアルゎリズムを高速化できるこずに気づきたした。 過去には興味深い孊術的問題のように思われたものの奜䟋です。 そしお、そうです、もしあなたが圓時私に、これらすべおが将来重芁になるず思うかどうか尋ねたら、私はこう答えたでしょうもちろん、しかし正確にい぀になるかは明らかではありたせん。 たぶん50幎埌かな 実際には、それはわずか XNUMX 幎であったこずが刀明した。 䜕かをしたずき、たったXNUMX幎で人々がそれに気づくのはずおも玠晎らしいこずです。

分散コンピュヌティングの分野で研究を行う䟡倀がある理由

Vitaly: 新しい研究に぀いお話す堎合、読者に䜕をアドバむスしたすか?分散コンピュヌティングたたはマルチコア、そしおその理由は䜕ですか? 

モヌリス: 最近ではマルチコア プロセッサを入手するのは簡単ですが、真の分散システムをセットアップするのは困難です。 私がそれらに取り組み始めたのは、博士課皋ずは違うこずをしたいず思ったからです。 これは私が初心者にい぀も䞎えるアドバむスです。フォロヌアップの論文を曞かないでください。新しい方向に進むよう努めおください。 さらに、マルチスレッド化も簡単です。 ベッドから起き䞊がるこずなく、ラップトップ䞊で実行される自分のフォヌクを実隓できたす。 しかし、いきなり本栌的な分散システムを䜜りたいず思ったら、孊生を集めたり、倧倉な䜜業が必芁になりたす。 私は怠け者なので、マルチコアで䜜業するこずを奜みたす。 マルチコア システムでの実隓は、分散システムでの実隓よりも簡単です。愚かな分散システムであっおも、制埡すべき芁玠が倚すぎるからです。

Vitaliy: ブロックチェヌンの研究は今䜕をしおいるのですか? たずどの蚘事に泚目すべきでしょうか?

モヌリス最近珟れた ずおも良い蚘事これは私が生埒のノィクラム・サラフず䞀緒に曞いたもので、特に Tokenomcs カンファレンス XNUMX週間前にパリで。 これは、むヌサリアムのマルチスレッド化を提案する、䟿利な分散システムに関する蚘事です。 これで、スマヌト コントラクト (ブロックチェヌン䞊で実行されるコヌド) が順次実行されたす。 以前、プロセスをスピヌドアップするために投機的な取匕を䜿甚する方法に぀いお説明した蚘事を曞きたした。 私たちは゜フトりェアのトランザクション メモリから倚くのアむデアを取り入れ、これらのアむデアを Ethereum 仮想マシンの䞀郚にすれば、すべおがより高速に動䜜するだろうず蚀いたした。 ただし、そのためには、契玄内にデヌタの矛盟がないこずが必芁です。 そしお私たちは、珟実にはそのような察立は実際には存圚しないず仮定したした。 しかし、私たちにはそれを知る機䌚がありたせんでした。 そこで、玄 XNUMX 幎分の実際の契玄履歎が手元にあるこずに気づき、むヌサリアム ブロックチェヌンをアンロヌドしお、これらの履歎蚘録が䞊行しお実行されたらどうなるだろうかず考えたした。 速床が倧幅に向䞊したこずがわかりたした。 むヌサリアムの初期には速床が倧幅に向䞊したしたが、珟圚ではコントラクトが枛り、シリアル化が必芁なデヌタをめぐっお競合が発生する可胜性が高くなったため、状況は少し耇雑になっおいたす。 しかし、これはすべお実際の歎史的デヌタを甚いた実隓的な䜜業です。 ブロックチェヌンの良い点は、すべおを氞久に蚘憶するため、過去に戻っお、他のアルゎリズムを䜿甚しおコヌドを実行した堎合に䜕が起こるかを研究できるこずです。 過去の人々は私たちの新しいアむデアをどれほど気に入っただろうか。 すべおを監芖し、すべおを蚘録するものがあるため、そのような研究を行うこずははるかに簡単で快適です。 これはすでにアルゎリズムの開発ずいうよりも瀟䌚孊に近いものです。

アルゎリズムの開発は止たったのか、どうやっお生きおいくのか

ノィタリヌ: 最埌の理論的な質問の時間です! 競争力のあるデヌタ構造の進歩は幎々瞮小しおいるように感じたすか? デヌタ構造の理解は頭打ちになったず思いたすか、それずも倧きな改善が芋られるのでしょうか? すべおを完党に倉えるこずができる賢いアむデアがあるかもしれたせん?

モヌリス: 埓来のアヌキテクチャのデヌタ構造は頭打ちになっおいるのかもしれたせん。 しかし、新しいアヌキテクチャのデヌタ構造は䟝然ずしお非垞に有望な分野です。 たずえばハヌドりェア アクセラレヌタ甚のデヌタ構造を䜜成する堎合、GPU デヌタ構造は CPU デヌタ構造ずは倧きく異なりたす。 ブロックチェヌンのデヌタ構造を蚭蚈するずきは、デヌタの䞀郚をハッシュしお、次のようなものに入れる必芁がありたす。 マヌクルツリヌ、停造を防止するため。 最近この分野での掻動が掻発になっおきおおり、倚くの人が非垞に良い仕事をしおいたす。 しかし、今埌䜕が起こるかずいうず、新しいアヌキテクチャず新しいアプリケヌションが新しいデヌタ構造に぀ながるず思いたす。 叀いアプリケヌションず䌝統的なアヌキテクチャ - おそらく、もう研究の䜙地はあたりありたせん。 しかし、人里離れた道から倖れお端から目を向けおみるず、䞻流が真剣に受け止めおいないクレむゞヌな出来事が目に入るでしょう。すべおの゚キサむティングな出来事が実際に起こっおいるのはそこです。

ノィタリヌ: したがっお、非垞に有名な研究者になるためには、独自のアヌキテクチャを発明する必芁がありたした 🙂

モヌリス: 他人の新しいアヌキテクチャを「盗む」こずができたす。それははるかに簡単なようです。

ブラりン倧孊で働く

ノィタリヌ: に぀いお詳しく教えおいただけたすか ブラりン倧孊どこで働いおいたすか 情報技術の文脈で圌に぀いおはあたり知られおいたせん。 たずえば、MIT 皋床未満です。

モヌリス: ブラりン倧孊は米囜で最も叀い倧孊の XNUMX ぀です。 ハヌバヌド倧孊だけが少し叀いず思いたす。 ブラりンはいわゆる アむビヌリヌグ、XNUMX぀の最も叀い倧孊の集合䜓です。 ハヌバヌド、ブラりン、コヌネル、゚ヌル、コロンビア、ダヌトマス、ペンシルベニア、プリンストン。 ここは叀くお小さくおちょっず貎族的な倧孊です。 リベラルアヌツ教育に重点を眮いおいたす。 MIT のようになろうずしおいるわけではありたせん。MIT は非垞に専門的で技術的です。 ブラりンは、ロシア文孊や叀兞ギリシャ語、そしおもちろんコンピュヌタヌ サむ゚ンスを孊ぶのに最適な堎所です。 総合的な教育に重点を眮いおいたす。 私たちの孊生のほずんどは Facebook、Apple、Google に通っおいるので、孊生は業界に就職するこずに䜕の問題もないず思いたす。 私が Brown で働くこずになったのは、その前はボストンの Digital Equipment Corporation で働いおいたからです。 面癜いものをたくさん発明する䌚瀟でしたが、パ゜コンの重芁性を吊定しおいたした。 困難な運呜を背負った䌚瀟で、その創蚭者たちはか぀お若き革呜家だったが、䜕も孊ばず、䜕も忘れなかったために、玄XNUMX幎以内に革呜家から反動家に転向した。 圌らは、パヌ゜ナル コンピュヌタはガレヌゞにあるものだず冗談を蚀うのが奜きでした。もちろん、攟棄されたガレヌゞです。 より柔軟な䌁業によっお砎壊されたこずは明らかです。 䌚瀟が困難に陥っおいるこずが明らかになったずき、私はボストンから玄XNUMX時間のずころにあるブラりン出身の友人に電話したした。 他の倧孊にはあたり空きがなかったため、圓時私はボストンを離れたくありたせんでした。 圓時は、コンピュヌタヌ サむ゚ンスの分野での求人が今ほど倚くはありたせんでした。 ブラりンには仕事があったので、私は家を出る必芁も、家族を匕っ越す必芁もありたせんでした。ボストンでの生掻を本圓に楜しんでいたす。 それで私はブラりンに行くこずに決めたした。 それはいいですね。 生埒たちは玠晎らしいので、他のずころに行こうずしたこずもありたせんでした。 サバティカルずしお、マむクロ゜フトで XNUMX 幎間働き、ハむファのテクニオンに XNUMX 幎間通い、そしお今はアルゎランドにいたす。 どこにでも同僚がたくさんいるので、教宀の物理的な堎所はそれほど重芁ではありたせん。 しかし、最も重芁なのは生埒たちであり、圌らはここで最高です。 ここでずおも満足しおいるので、他の堎所に行こうずしたこずはありたせん。

しかし、ブラりンは米囜では有名であるにもかかわらず、海倖では驚くほど知られおいない。 ご芧のずおり、私は今、この状況を是正するために党力を尜くしおいたす。

倧孊ず䌁業の研究の違い

Vitaliy: さお、次の質問はデゞタル機噚に぀いおです。 あなたはそこの研究者でした。 倧䌁業の研究開発郚門で働くこずず倧孊で働くこずの違いは䜕ですか メリットずデメリットは䜕ですか?

モヌリス: 私はマむクロ゜フトに XNUMX 幎間勀務し、サン マむクロシステムズ、オラクル、フェむスブック、そしお珟圚はアルゎランドの人々ず緊密に仕事をしおいたす。 以䞊のこずを螏たえお、䌁業でも倧孊でも䞀流の研究は可胜だずいうこずを申し䞊げたいず思いたす。 重芁な違いは、䌚瀟では同僚ず䞀緒に働くずいうこずです。 ただ存圚しおいないプロゞェクトのアむデアを突然思い぀いた堎合、これが良いアむデアであるず同僚を説埗しなければなりたせん。 私がブラりン倧孊にいるなら、生埒たちに「反重力の研究をしたしょう」ず蚀えるでしょう。 圌らは他の人に行くか、そのプロゞェクトを匕き受けるこずになりたす。 はい、資金を芋぀けたり、補助金申請曞を曞いたりする必芁がありたす。 いずれにせよ、生埒の数は垞に倚く、䞀方的に決定するこずができたす。 しかし倧孊では、おそらく同じレベルの人々ず䞀緒に働くこずはありたせん。 産業研究の䞖界では、たず自分のプロゞェクトに取り組む䟡倀があるこずを党員に玍埗させなければなりたせん。 誰にも䜕も泚文できたせん。 そしお、これらの働き方は䞡方ずも䟡倀がありたす。なぜなら、あなたが本圓に突飛なこずに取り組んでおり、同僚を説埗するのが難しい堎合、倧孊院生を説埗するのは特に簡単だからです。 倚くの経隓ず深い専門知識が必芁な䜕かに取り組んでいる堎合、「いいえ、私がこの分野を理解しおいるのはたたたたです。あなたのアむデアは間違っおいたす。それからは䜕も生たれたせん。」ず蚀える同僚が必芁です。 これは時間の無駄ずいう意味では非垞に䟿利です。 たた、工業研究所ではレポヌトを曞くのに倚くの時間を費やしたすが、倧孊ではその時間をお金を芋぀けるこずに費やしたす。 孊生たちにどこかに旅行しおもらいたいなら、そのためのお金をどこかで芋぀けなければなりたせん。 そしお、倧孊内での地䜍が重芁であればあるほど、お金を集めるのに費やす時間が長くなりたす。 これで、私がプロの物乞いずしお働いおいるこずがわかりたした。 寄付プレヌトを持っお歩き回る僧䟶のように。 䞀般に、これら XNUMX ぀のアクティビティは盞互に補完し合いたす。 だからこそ、私は䞡方の䞖界にしっかりず立っお生きようずしおいたす。

ノィタリヌ: 䌁業を説埗するこずは、他の科孊者を説埗するよりも難しいようです。

モヌリス: もっず難しい、そしおもっずもっず。 さらに、分野によっおも異なりたす。本栌的な研究を行う人もいれば、テヌマに集䞭しお取り組む人もいたす。 私がマむクロ゜フトやフェむスブックに行っお反重力をやりたしょうず蚀ったら、圌らはほずんど評䟡しないでしょう。 しかし、もし私が倧孊院生に党く同じこずを蚀ったら、圌らはおそらくすぐに仕事に取りかかるでしょう。もっずも、今私はすでに問題を抱えおいるでしょう - そのためにはお金を芋぀ける必芁があるからです。 しかし、あなたがその䌚瀟の目暙に沿った䜕かをしたいのであれば、その䌚瀟は研究を行うのに非垞に良い堎所になる可胜性がありたす。

ヒドラずSPTDC

ノィタリヌ: 私の質問も終わりに近づいおいたすので、今床のロシア蚪問に぀いお少し話したしょう。

モヌリス: はい、サンクトペテルブルクに戻るのを楜しみにしおいたす。

アレクセむ: 今幎、あなたが私たちず䞀緒にいおくれおずおも光栄です。 サンクトペテルブルクに来るのはこれでXNUMX回目ですよね

モヌリス: もう XNUMX ぀目です!

アレクセむ: 分かりたしたが、 SPTDC - たさにXNUMX回目です。 最埌に孊校に電話したのは SPTCCでは、今幎は分散コンピュヌティングに関連する領域が増えるこずを匷調するために、XNUMX ぀の文字 (C から D、同時実行から分散) を倉曎したした。 孊校でのプレれンテヌションに぀いお䞀蚀お願いしたす。 ヒドラカンファレンス?

モヌリス: 孊校では、ブロックチェヌンの基本ず、それを䜿っお䜕ができるかに぀いお話したいず思っおいたす。 ブロックチェヌンは、私たちがよく知っおいるマルチスレッド プログラミングに非垞に䌌おいたすが、独自のニュアンスがあり、これらの違いを理解するこずが重芁であるこずを瀺したいず思いたす。 通垞の Web アプリケヌションでミスをするず、面倒なだけです。 金融アプリにバグのあるコヌドを曞くず、間違いなく誰かがあなたのお金をすべお盗んでしたいたす。 これは責任ず結果のレベルがたったく異なりたす。 プルヌフ・オブ・ワヌク、スマヌトコントラクト、異なるブロックチェヌン間のトランザクションに぀いお少しお話したす。

私の隣では他の講挔者もブロックチェヌンに぀いお発蚀する予定で、私たちは自分たちの話がうたく適合するように調敎するこずに同意したした。 しかし、゚ンゞニアリングの話では、ブロックチェヌンに぀いお聞いたこずをすべお信じおはいけない理由、ブロックチェヌンが玠晎らしい分野である理由、ブロックチェヌンが他のよく知られたアむデアずどのように適合するのか、そしおなぜブロックチェヌンを信じるべきなのかを、幅広い聎衆に明確に説明したいず考えおいたす。倧胆に未来を芋据えおください。

Alexey: さらに、これは 120 幎前のようにミヌトアップやナヌザヌ グルヌプの圢匏で開催されるわけではないこずもお䌝えしたいず思いたす。 私たちは孊校の近くで小さな䌚議を開くこずにしたした。 その理由は、ピヌタヌ・クズネツォフず話した埌、この孊校の定員は XNUMX 人、おそらく XNUMX 人に過ぎないこずがわかったからです。 同時に、あなたず話したい、レポヌトに参加したい、そしお䞀般的にこのトピックに興味を持っおいる゚ンゞニアがたくさんいたす。 このために、新しいカンファレンスを䜜成したした ヒドラず呌ばれる。 ずころで、なぜヒドラなのかわかりたすか

モヌリス: スピヌカヌが XNUMX ぀あるからですか? そしお、圌らの銖を切り萜ずすこずができ、その代わりに新しいスピヌカヌが成長するのでしょうか

Alexey: 新しいスピヌカヌを育おるための玠晎らしいアむデアです。 しかし、実はここには物語があるのです。 オデュッセりスの䌝説を思い出しおください。 スキュラずカリュブディス? ヒドラはカリュブディスのようなものです。 か぀お私がカンファレンスで講挔し、マルチスレッドに぀いお話したずきの話です。 このカンファレンスには XNUMX ぀のトラックしかありたせんでした。 レポヌトの冒頭で、私は䌚堎の聎衆に、スキュラずカリュブディスのどちらかを遞択できるようになったず䌝えたした。 私の粟霊動物はカリュブディスです。カリュブディスには頭がたくさんあり、私のテヌマはマルチスレッドだからです。 このように䌚議名が衚瀺されたす。

いずれにせよ、質問も時間もなくなりたした。 玠晎らしいむンタビュヌをしおくれた友人たちに感謝したす。SPTDC ず Hydra 2019 でお䌚いしたしょう!

2019幎11月122019日にサンクトペテルブルクで開催されるHydra XNUMXカンファレンスでモヌリスずのコミュニケヌションを継続するこずが可胜です。 圌は報告曞を持っお来るでしょう 「ブロックチェヌンず分散コンピュヌティングの未来」。 チケットは賌入できたす 公匏りェブサむト䞊で.

出所 habr.com

コメントを远加したす