「䞊行性に関する科孊的研究の半分は完党なゎミです」-DevexpertsのRoman Elizarovぞのむンタビュヌ

こんにちは、「スラむドなし」です。 私は、 ゚リザロフずも呌ばれるロヌマの゚リザロフ 、ゞャワのチャンピオン、Javaずマルチスレッディングの専門家そしお最近では金融数孊の専門家、倚数の䌚議の講挔者、䞖界で最も暩嚁のあるオリンピアヌドの北東ペヌロッパ地域ACM-ICPCの審査委員長が蚪問したしたプログラマヌ、ITMOの講垫、そしお最終的にDevexpertsのテクノロゞヌの副瀟長。 䞀般的に、「人ず船」。



䌚話では、次のトピックに觊れたした。









テキスト版はカットされおいたす。





金融数孊ずは䜕か、そしおそれを教える方法



-むンタビュヌの開始前に、あなたは金融数孊の勉匷を始めたず蚀っおいたした。 このトピックはどのようにそしおなぜ興味を持ちたしたか



-職堎でこのトピックに盎面したした-金融業界向けの゜フトりェアをたくさん曞いおいたす。 そしお時々、クラむアントが来お尋ねたす「これはありたすか それずもこれはありたすか」 同時に、さたざたなスマヌトワヌドが話されたすが、その半分はわかりたせん。 それが私が興味を持぀ようになった方法です。



最初は自分の本から自分で孊がうずしたが、䜕もうたくいかなかった。 その埌、圌はプロセスを䜓系化するこずを決め、䜓系的に勉匷に行きたした。 そしおこのため、昚幎はどのカンファレンスにも登堎したせんでした。 代わりに、圌は教科曞の山の䞋に座っおいたした。 はい、それでも私の本棚には金融数孊に関する本がたくさんありたすが、䞊行性のトピックではなく、䞀時的にバックグラりンドに埌退したした。 もちろん、私は圌女の勉匷ず教えを続けおいたすが、䞊行性に関する新しいこずをすべお孊ぶこずは背景に消えおいきたした。



-珟代の金融業界の数孊はいくらですか



-本圓にたくさん。 基本的に、これらはすべお耇雑な金融商品に関連しおいたす。 倧芏暡な組織、銀行は垞に耇雑なもので取匕しおいたす。 たた、耇雑な金融商品のリスクを評䟡するには、非垞に重芁な数孊が必芁です。



ここでは、たずえば、モンテカルロシミュレヌションのような単玔なこずです。 プログラマヌなら誰でもそれを理解しおいたす。乱数を投げ、远加、受信したした。 プログラミングの芳点から芋るず、非垞に単玔なようです。 しかし、数孊の芳点からは、結果を珟実に関連付けるために正確に乗算たたは陀算する必芁がある正確な方法を理解するこずは、些现な䜜業ではない堎合がありたす。



-教えおください、䞀般的な金融数孊ずは䜕ですか 私たち党員が倧孊で教えた数孊のどの分野ず接觊したすか



-基本的に、これは数孊的分析、確率論であり、ほずんどの人が研究しおいないような分野は、䌊藀積分などの確率過皋です。 圌らは皆に少しでも教えられおいるように芋えたすが、圌らは基瀎だけを䞎えたす。 最近、私はサンクトペテルブルク州立倧孊の孊生ず話をしたした。圌は高床確率論のコヌスを受講したず私に話したした。 しかし、そこでさえ圌らはそれに぀いお非垞に衚面的に話したす。 これが圌らが教えられる堎所である堎合、HSEなどの専門教育機関、たたは非垞に専門的な郚門のいずれかで。 そしお、これを知っおいる卒業生はほずんどいたせん。 耇雑な金融商品を扱う堎合-この知識がなければ、どこにもありたせん。



「ロンドンで勉匷しおいるず蚀ったこずを芚えおいたすか」



-はい、これは遠隔教育です-私は最終的にそこに行ったこずはありたせん。 そこでは、䞻な特城は、たず、教科曞が非垞に優れおいるこずです。 ずころで、あらゆる教科曞で良い教科曞を芋぀けるこずは奇跡です。 同じ䞊行性を孊習するように孊生を始めたずき、私は偶然芋぀けた教科曞をいく぀か持っおいお、それらをずおも気に入ったので、孊生を教えるずいうアむデアがありたした。



そしお、金融数孊では、自分で勉匷しようずしたずき、ずおも䞍運でした。 私は䌊藀埮積分に぀いおグヌグルで調べ、いく぀かの本を芋぀け、それらを読んでみたした-でたらめは完了です。 それは明確ではありたせん-なぜ、䜕が、構造がありたせん。 そしお、コヌスでは、たず、通垞の教科曞が遞択され、著者が講矩を行いたす。 そしお、これらすべおは論理的に提瀺され、実甚化に重点が眮かれたした。 このすべおが必芁な理由が明らかになりたす。 本圓の䟋は、あなたを瀺し、たくさんの宿題を䞎え、本圓に問題を解決させ、コヌドを曞きたす。 そしお、これはすべお数孊であり、䞀方で数孊を応甚したものであり、これらすべおをプログラムする必芁があるず期埅しおいたす。



珟圚、珟代の金融数孊では、閉じた圢で「矎のために」実際に䜕も行われたせん。実際に䜿甚されるすべおのモデルは、閉じた圢ずは芋なされたせん。 これらはすべお数倀的手法です。 そしお、有限差分法を䜿甚しお拡散グリッドを解くか、モンテカルロ法を䜿甚しお䜕かをモデル化したす。 そしお、数孊は、有限差分スキヌムを導き出すか、モデル化する必芁があるものを理解するためにのみ必芁です。 そしお、コヌドがなければ答えを受け取れないので、コヌドを曞く必芁がありたす。



-倚くの人は珟代の数孊を珟実から非垞に遠いものだず非難しおいたす。 そしおここで-科孊は玔粋に実甚的ですか



-æ•°å­Š-それは異なりたす。 私自身も䞊行性を批刀しおいたす。 このトピックに関する倚数の科孊論文を読みたしたが、その半分は完党なゎミです。 人々はある皮のアルゎリズムを思い぀き、比范を行いたすが、実際にはこれらのアルゎリズムを必芁ずする人はいたせん。



もちろんここでも同じです。 æ•°å­Š-それはそれ自身で動きたす。 これをすべお適甚する個別の領域、個別の領域がありたす。 そしお、それが正しい教科曞を持぀こずが重芁である理由です。 ただ抜象的な数孊の教科曞を取るこずは䞀぀のこずです。 あなたがそれを乗り越えおいる間、あなたは倚くの時間を費やすでしょう、そしお、2、3の定理たたは事実がほずんど圹に立ちたせん。 そしお、材料が構造化されおいるずき、実際的な問題を解決するために必芁なそれらの事実が遞択され、科孊的知識の膚倧な基盀党䜓からチェヌンに入れられおいるずき、それはたったく異なる問題です。



カスタムマルチスレッドプログラミングコヌス



-教育に぀いお少し話したしょう。 あなたは10幎以䞊教えおきたしたよね い぀始めたしたか-ハヌリッヒずシャビットの教科曞はありたしたか



-2007幎からほが10幎。 この教科曞はただ存圚しおおらず、これが党䜓で耇雑なものでした。 教え始めたずき、教材を混合したり、さたざたな科孊䜜品を远加したり、同じHerlichiの蚘事の教材を远加したりする教科曞がいく぀かあったので、私にずっお非垞に困難でした。 ぀たり、自分でこのコヌスの構造を䜜成する必芁がありたした。



-どうやっおやったの



-それはすべお1冊の本から始たりたした。 奜きな教科曞を偶然芋぀けたした。 実際、教科曞は非垞に奇劙です。 Gargの著者は、Javaでのコンカレントおよび分散コンピュヌティングず呌ばれおいたす 。

第䞀に、すべおが非垞に衚面的に説明されおいたので、私はそれが奜きでした-同時実行性ず小さなアプリケヌションの教科曞での分散。 第二に、これをどのようにプログラムできるかの実䟋がありたした。 そしお第䞉に、実際の科孊研究ぞの蚀及がありたした。 ぀たり、倚くの定理が省略され、倚くの事実が省略されたしたが、最終的には远加の参照ぞの参照がありたした。



-このチュヌトリアルは、 Java Concurrency in Practiceずどのように違いたしたか



-倚くの人に。 これはただ理論的な本ですが、実務家向けのプレれンテヌションがありたす。 実際に必芁なものを遞択しようずしおいたす。 そしお圌女は本圓に私を倢䞭にさせた。 この本はあたりにも衚面的なように思えたので、私はその䞭にあるリンクをたどり、関連する科孊文献を研究し、孊生のために䜕かを遞び、それから自分のコヌスを䜜りたした。 最初の資料のプレれンテヌションの順序は、Gargずほが同じでした。 しかし、私は圌の資料を、同じランポヌトやヘルリヌチなどの科孊的研究から埗た理論で垌釈したした。



そしお、 ヘルリヌチずシャビットの偶然性に関する教科曞がすでにありたした。 その埌、私は倚くのブログを賌読したした。発衚ずレビュヌを芋るずすぐに、私はすぐに賌入しお読みたした。 そしお圌はショックを受けた「ここにある このようなコヌスを読むために本圓に必芁なものは次のずおりです。 これ以䞊でもそれ以䞋でもない。」 適切な深さ、適切なシヌケンス、適切な緯床。 その埌、コヌスを少し調敎したした。



-しかし、私はこの本党䜓をマスタヌしたせんでした。 圌女に぀いお䜕が䞀番むラむラするか知っおいたすか それはかなり曲がった蚀語で曞かれおおり、英語自䜓はなんずなく奇劙であり、䟋でもありたす。 芚えおおいお、犬、猶の最初の䟋がありたす。 しかし、著者が私に蚀っおいるこずを理解しようずしお2時間座っおいたした...そしお、私は突然、これがアトミックレゞスタで䜕かを行う方法の叀兞的な䟋であるこずに気付きたした。 このすべおをどのように乗り越えたしたか



-すでに準備ができおいたので、私にずっおは簡単でした。 すでにプロの倉圢がありたした。Lamportず他の著者の蚘事で、犬を䜿っおこれらの䟋をすべお100,500回読みたした。 私はそれがどこから来たのか知っおいたした。 思い぀いたのはHerlichiずChavitではなかったが、これはすでに20幎前の叀兞です。 それで、私にずっおはすべお芪しみがあり、芪愛なりたした。 そしお、私はこの本を远加の読曞ずしお孊生に勧めたす、私は誰にでもそれを読むこずを匷制したせん。 私のコヌスから、私にはほずんど圹に立たないず思われる理論の䞀郚を捚おたしたが、孊生にはそれを読みたせん。



「生埒に䜕を䌝えるか、䜕を䌝えないかをどのように遞択したすか」



「私は生埒たちに、ずおも矎しくお自明ではないず思ったものを䞎えたす。」 䟋えば、私は、圌女が非垞に矎しく、物事の本質を理解できるように思えるので、私は孊生にHerlichのコンセンサス定理を蚌明しおいたす。 CASが必芁な理由を理解できたす。CASがなければ、2぀のストリヌムでさえ、より高い構造がなければコンセンサスに達するこずができたせん。 ナニバヌサルデザむンを衚瀺したす。 Herlichiず同じ方法で緎習されたすが、決しお䜿甚するこずはありたせん。 これは非垞に人為的なこずですが、埌で実際のアルゎリズムで必芁ずされる手法を䜿甚したす。 そしお䞀般的に、私は他の既に実甚的なアルゎリズムのブロックを構築しおいるいく぀かのトリックがある玔粋に理論的なアルゎリズムに぀いお話したす。



-ずころで、たずえば、ランポヌトの䜜品を読んだ堎合、圌の構造は少し人工的に芋えたす。 これは蚌明に圹立ちたすが、アプリケヌションを理解するために゜ヌスコヌドを開くず、他のすべおがそこにあるこずがわかりたす。 実際には、これらの゜リュヌションは効果的ではありたせんか



「はい、正確に。」 この理論党䜓が登堎した20〜30幎前に研究者を悩たせた䞻な質問は、「䜕かをするこずは可胜かどうか」でした。効率に぀いおは誰も考えず、可胜かどうかだけを考えたした。 そしお、可胜なこずずそうでないこずの矎しい定理がたくさんありたした。 そしお、レゞスタヌに関するこれらすべおの理論的構成を、1回の講矩で孊生に、非垞に迅速に、トップたで䌝えたす。 私は圌らに心から知らせたせん。 なぜなら、䞀方ではこれがすべお可胜であり、他方ではこれらのアルゎリズムはすべお実甚的な䟡倀がないこずを瀺したいからです。 そしお、コヌスの埌半では、実甚的なアルゎリズムに集䞭したす。 たずえば、珟圚のリストでは、倚くの堎所で䜿甚されおいる完党に叀兞的なアルゎリズムを話しおいたす。



-半䞍倉量を持぀のはどれですか



-はい。 それに応じお、詳现に分解したす。 アルゎリズム自䜓が実際に䟡倀があるだけではないからです。 耇雑さず生産性のバランスずいう点で、改善の車、いく぀かの科孊的研究、すべお同じものがあったにもかかわらず、それはすべおを匕き裂きたす。



しかし、たずえば、HashMapにはそのような勝利はただありたせん。 これは今なお掻発な研究テヌマであり、特に私たちの研究所で行っおいたす。 HashMapは䞀般にすべおの構造のデヌタ構造であるためです。 垞に䜿甚されたす。



AmazonのCEOに぀いお知られおいる自転車があるようです。 圌が孊生の聎衆に話をしたずき、アルゎリズムを研究しおいる孊生は圌に尋ねたした「教えおください、どんなデヌタ構造が必芁ですか アルゎリズムは䜕ですか 䜕を䜿甚しおいたすか」 圌は、圌らにずっお最も重芁なこずは「ハッシュテヌブル、ハッシュテヌブル、ハッシュテヌブル」だず答えたした。 そしお、これはすべお真実です。



同じこずがありたす。 たた、倧芏暡なビゞネスタスクでは、垞に次のようになりたす。ハッシュテヌブルは最も重芁なデヌタ構造です。 そしおもちろん、䞊行性の芳点からは、倚くの未解決の質問がありたす。 ぀たり、これが実装においおどれだけ積極的に倉化しおいるかを芋るこずすらありたす。 Javaの内郚は芋えたすが、通垞のHashMapはそこにどのように察応しおいたすか。



-ConcurrentHashMapをきっかけに 。



「たあ、圌は間違った方法で曞き盎されたした。」 長い話がありたした。 怒りは、8幎前にPHPで暙準蟞曞がどのように配眮されるかを研究した人物によっお䜜成され、Webサむトの本質を詳しく調べるこずなく、キヌが同じハッシュを持぀リク゚ストを行いたした。 そしお、圌らはそれを異なるサむトに送り始めたした。



詊したサむトの95がダりンしたした。 そしお、これに぀いお圌らは玠晎らしい蚘事をリリヌスしたした。 この蚘事の埌、ハッシュのための闘争が始たりたした。これには、サンが圌らのために戊い始めたこずが含たれたす。 Sunの最初のむテレヌションは、文字列のハッシュコヌドをランダム化するこずでした。 そしお、圌らはそれが単なる線ではないこずに気づきたした。 そしお䞀般的に、すべおは珟圚の実装で終わりたした。ハッシュテヌブルのバケットがいっぱいになるず、すべおバランスツリヌに眮き換えられたす。 これの目暙は、ハッカヌずの安定した戊いです。 最悪の堎合、ハッシュテヌブルはON 2 アルゎリズムに瞮退せず、少なくずもON log Nで機胜したす。 実際のりェブサむトでは、Nの芏暡はどのくらいになっおいたすか たぶん1䞇、10侇...そしおどこかにN 2があれば、システムはダりンしたした。 100,000平方はすでに倚すぎるからです。 そしお、あなたが小さなNを持っおいる堎合-䜕も、通垞は、生きたせん。







マルチスレッド科孊かビゞネスか



-私が理解しおいるように、あなたの䌚瀟の決定は、マルチスレッドでの高いワヌクロヌドに関連しおいたす。 教えおください、これをするようになったのは、あなたが通貚に興味があるのですか たたは、倚分、反察に-仕事はこのトピックに突入するこずを䜙儀なくされたしたか



-それはむしろ偶然です。 因果関係を远跡するこずは困難です。 私たちが始めたずきこれは叀代、2000幎、たたはそれより少し前のこずでした、私たちは小さな䌚瀟ずしお、すべおを䞀列に匕き受けたした。 圓時、ドットブヌムのプログラマヌは金に芋合うだけの䟡倀があり、人々は誰にでも䜕でも泚文する甚意ができおいたした...そしお、どういうわけか金融分野のいく぀かのプロゞェクトに偶然出くわしたした。 私たちはそれらを䜜り始め、それが気に入りたした。 そしお2幎埌、私たちは他に䜕もしたくないこずに気づき、他のプロゞェクトをやめたした。 りェブサむトの開発やアりト゜ヌシングは䞀切行わず、取匕、ブロヌカヌ、取匕所のアプリケヌションのみを扱うこずにしたした。



他のすべおはこの決定の結果です。 これらのアプリケヌションに察凊し始めるず、匕甚の転送に問題が生じ始めたす。 なぜならそれらはたくさんあり、䞻な取匕はアメリカ垂堎に集䞭しおいるからです。 繰り返しになりたすが、歎史的に非垞に耇雑な金融商品、あらゆる皮類のオプションに埓事しおいたした。 たた、数癟䞇の楜噚、1秒あたり数千䞇のクオヌトがありたす。 これらはすべお䜕らかの方法で凊理し、顧客に送信する必芁がありたす。 数䞇人の顧客もいたす。



そしお、それを把握する必芁がありたした。 最初に、コヌドを曞き盎し、曞き盎し、研究し、プロファむリングし、ボトルネックを芋぀け、それを修正する方法を芋぀けたす...最初の数幎間は、すべおが汗ず血で独占的に行われ、科孊のない゜リュヌションを発明したした。 そしお、科孊はどういうわけか偶然出おきたした。 私たちは皆この分野で独孊であり、各本は衚玙ごずに数えられおいたした。



そしお、2006幎にJava Concurrency in Practiceが登堎したずき、あなたはそれを手に入れお、それが宝物であるこずを芋たした しかし、あなたはすでにこのすべおを知っおいたす。実際の仕事をしおいるので、あなたはすでにこのすべおに自分自身で来おいたす。 しかし、誰かがそれをすべお䜓系化したこずのすごさを理解しおいたす。 そしお、新しいプログラマヌが来たら、圌に次のように䌝えるこずができるこずを知っおいたす「ここで、Java同時実行性を実践しお、読んでください。 知識の芁玄がありたす。」 そしお、あなたはこの知識のためにこの本に感謝し始めたす。 そしお、あなたはあなたの血のあらゆるペヌゞの䞋で申し蟌む準備ができおいたす そこに著者は曞いおいたすが、あなたはすでに知っおいたす。 私はそこにいた 本圓にそう そうしないず、「雪が降っお、あなたは完党に死んでしたいたす。」



-䞀般に、この本は非垞に興味深いため、非垞に興味深いものです。 そしお、今日行われおいるパフォヌマンステストの結果はかなりワむルドに芋えたす。 今、珟実は完党に異なっおいたす。 これがどのように発展するかを芳察するこずは興味深いです。



-もちろん、その倀はパフォヌマンス結果には含たれたせん。 デザむンテンプレヌトの䟡倀。 それは知識を構築し、あなたが正しく考えるようにしたす。 同時実行性の䞻な問題は、テストが非垞に難しく、バグを蚱可するのが非垞に簡単だからです。 テストは少なくずも10回実行できたすが、ずにかく切り替えにより䞭断されたシステムに萜ちたす。 したがっお、あなたず隣人、そしお数幎以内にこのコヌドを読む人の䞡方が正しいこずを理解するような方法でコヌドを曞く必芁がありたす。 コヌドを曞くこずはどういうわけか玛らわしいので、正しいず自分に玍埗させるにはどうすればよいでしょうか そしお、これがJavaoncurrencyin Practiceが教えおいるこずです。 圌女はパタヌンを教えおいたす。 それらを曞くず、他の人がそれらを簡単に認識し、すべおがそこにあるこずを理解しやすくなりたす。



プロAPI䜜成アプロヌチ



最近、 OpenHFTを担圓しおいるPeter Laurieず話をしたした 。 圌は、フレヌムワヌク間のすべおの闘争はもはやパフォヌマンスのためではなく、提䟛される゜リュヌションが䞊行性のすべおの問題を解決する䞀皮の閉じた箱であるず信じおいたす。 なぜなら、私たちがいく぀かの䞊行性ペンを人々に配るず、すべおのnafigが䞀般に厩壊するからです。 あなたのコヌドがマルチスレッドを理解しおいない人に到達するずいう事実にどのように苊劎したすか



-私たちは戊っおいたせん。 別のビゞネスがありたす。 私たちは最終顧客のために決定を䞋すので、そのような問題はありたせん。 プログラマヌよりも特定の人々にツヌルを提䟛したす。



-぀たり、APIを提䟛しないのですか



-私たちは䞎えたすが、それを単玔化しようずしたす。 これを階局化アヌキテクチャで解決したす。 䜎レベルのAPIがあり、すべおの勇気が出おおり、巊ぞのステップ、右ぞのステップが地雷によっお爆砎されたした。 しかし、この䜎レベルを䜿甚しおいるのは私たちだけであり、私たちの䌚瀟には、これらの地雷の察凊方法を知っおいる人は非垞に少数です。



そしお、すべおが䟿利で理解可胜な高レベルのAPIがただありたす。 そしお、私たちは䜕が䞭にあるのかさえ蚀いたせん。 文曞化されおおり、理解可胜です。 バグも定期的に発生したすが、バグを芋぀けお修正したす。



Devexpertsは䜕をしたすか



-非垞に興味深い、もっず教えおください。 芋積もりを顧客に送信し、取匕所に送り返す分散システムはありたすか



-たくさんありたす。 通垞、垂盎統合゜リュヌションを䜜成したす。 セットアップ芋積もりの​​䜿甚は、圓瀟のビゞネスのほんの䞀郚です。 別の補品dxFeedがありたす-これは実際にはアメリカの別の䌚瀟であり、すべおの取匕所コヌス、芋積もりからデヌタを収集し、それを単䞀の圢匏で単䞀のAPIを介しおパッケヌゞ圢匏で顧客に販売しおいたす。 そしお、これはただ䞀぀の小さな方向です。 非垞に小さい-数十人がそこで力を働かせおいたす。



そしお、䌚瀟の残りの郚分-私たちは䜕も曞きたせん...ブロヌカヌを取り、圌は倚くの情報システムを必芁ずし、顧客を考慮し、バックオフィスを維持し、取匕を考慮する必芁がありたす...これらのシステムを持぀膚倧な数のチヌムがありたす䜜成したす。



-そしお、亀換も非垞に異なりたすよね



-亀換は自動化されたせん。 取匕所はすべお瀟内で行うこずを奜みたす。 しかし、それらず倧量に統合したす。 ほずんどがアメリカ人ですが、アゞアがあり、MICEXは長い間クラむアントです。 そしお今、圌らずの良奜な関係、そしおRTSは私たちの良い顧客でした。 その埌、RTSずMICEXが統合されたずき、メむンの情報システムぞの統合は奜たしくありたせんでした。 しかし、ロシア垂堎では䞀般的に顧客はほずんどいたせん。 スケヌルが同じではないずいう理由だけで。



-そしお、アメリカの為替は私たちのものよりもはるかに倚いのですか



-はい、それは亀換に぀いおでさえありたせん。 プロのトレヌディングタヌミナルを最初から䜜成したす。 各ブロヌカヌは、ごみを隣人ず同じにしたくないが、違うものにしたい。 そしお、以前に圌らがより小さな委員䌚を远いかけおいたら、今ではこれは長い間䞻な機胜ではありたせん。 すべおのブロヌカヌの手数料は非垞に䜎いです。 そしお、より䟿利なクラむアントむンタヌフェヌスを求めおいたす。 各ブロヌカヌはナニヌクなものを望んでいたす。 䜕でも取匕するこずが可胜であり、チャヌトがあり、それは矎しく、高速で、スロヌダりンしたせんでした。



-このりェブはありたすか



-それだけです。 私たちはりェブフロントずデックストップの䞡方を行っおいたす。 専門家は自分で特別な鉄の棚を眮き、そこに5〜9台のモニタヌを掛けたす。 そしお、これらのモニタヌはすべお情報で満たされおいたす。 さらに、すべおがこのように広がり、成長し始めおいるようです。 このための機械を補造する特別な䌚瀟、モニタヌ甚の特別なラックがありたす。



-これはWindowsですよね



-Javaで蚘述しおいるため、WindowsおよびMac OS Xで䜜業できたす。しかし、具䜓的には、Windowsでこのようなこずができたす。



-したがっお、これほど倚くのモニタヌをサポヌトできるビデオカヌドさえありたせん。



-䞀床に耇数のビデオカヌドを挿入するず、それだけです。 問題ありたせん。



-これには匷力なコンピュヌタヌが必芁ですか 私が理解しおいるように、コンピュヌタヌ自䜓に特別な負荷はありたせん。そのタスクは、単にデヌタを駆動しお衚瀺するこずです。



「䜕をするかに䟝存したす。」 もちろん、これは䞻にデヌタの迫害ですが、画面スペヌスが倧きいため、画面が倚いずいう理由だけで倧量のデヌタを操䜜する必芁がありたす。 たあ、それはたた、すべおのコヌドがどれだけ効率的に曞かれおいるかに䟝存したす。 それどころか、倚くはそれらに埓事しおいたす。 分析、およびすべおの芋積デヌタベヌスはロヌカルコンピュヌタヌに保持されたす。 䜕かを構築する堎合、ここで頻繁に分析されたす。 今では埐々にすべおですが...



-そしお、なぜ圌らは これは䜎遅延のためですか



-いいえ、䜎遅延は䞀般的に別の問題であり、たったく異なるビゞネスです。 そこでは、これらすべおのモニタヌが必芁ずいうわけではなく、非垞に高速に動䜜するコヌドを䜜成したす。䞻な問題は、他の人を倒すために、特別なコロケヌションにある鉄片を盎接亀換所に眮き、それに倧きなお金を払わなければならないこずです。 そしお、ここでモニタヌはあなたを救うこずはありたせん。 HFTは非垞にニッチなビゞネスです。 䜎遅延のプロゞェクトがいく぀かありたしたが、さたざたな理由でうたくいきたせんでした。 その1぀は、䜎遅延に関䞎する党員が瀟内ですべおのこずをしようずしおいるこずです。 そしお、私たちは取匕をせず、゜フトりェアを䜜成したす。



そしお、スケヌルの違いは䜕ですかず尋ねたした。 おわかりのように、倧芏暡な取匕システムは少なくずも100䞇ドルのプロゞェクトです。 あなたが私たちの最倧のブロヌカヌを芋おも、圌は客芳的な理由でこのお金を䜿う䜙裕がありたせん。圌らはそんなにお金を皌ぐ方法がないからです。 これらのトレヌダヌはロシア䞭に䜕䞇人もいたす。



すべおのブロヌカヌはコミッションで皌ぎたす。 ブロヌカヌには、掗緎された゜フトりェアの開発に投資するだけのお金がありたせん。



アメリカでは-たったく異なる芏暡。 ブロヌカヌには数十億ドルの預金を持぀顧客が䜕癟䞇人もおり、ブロヌカヌはこれらの預金の割合ず取匕からの手数料の䞡方で皌いでいたす。 そしおこれにより、最倧のアメリカのブロヌカヌは本圓にクヌルなシステムの䜜成に投資するこずができたす。



マルチスレッドラボ



-2000幎代初頭、あなたはすべおをしたした。 そしお、䌚瀟がすでに倧きく成長した今、あなたは䜕をしおいたすか ずころで、あなたは䜕人いたすか



「400人以䞊。」 コヌディングが倧奜きなので、コヌドの䜜成を含め、すべおを続けおいたす。 したがっお、私は面癜いものを曞く喜びを決しお吊定したせん。 しかし、それだけではありたせん。 , , dxLab. , .



— . . , , , , . - , . - , Fulltime-, , . , , .



— ?



— dxLab , . — . , , , — . , , — , — high concurrent, . , , .



-, . , , , -? , .



, . - . . , , 50 . , , , , .



, Performance- . . - , , .



— ? .



— — . HashMap « » . , Garbage Collection, . HashMap-. , « — » . HashMap-, . ! ! , .



— , CAS- , .



— , . – . . , , GC CPU . , , . . , , , , .



, . ? - HTTP-. 玠晎らしい。 - HTTP-. .



, . — , — . , . -, . , , , . , ? , , .



— ? - , .



— , . .



Concurrency,



— , Concurrency, , . . ?



— . , , — . , . . - .



— ?



— . , , , , . . ? , - . , - , , , , , . , - .



— . Java oncurrency, - . , , , , Memory Model. Java 5 (JSR 133). , . concurrency-interest hotspot-dev?



— , . , . , - , .



— , , ?



— . - . , , — . , - , . , - . Wait-free synchronization , , , : «, , CAS . .» ? , , , .



, , - — Software Transactional Memory (STM). Software Hardware, . , , , . – .



, Hardware Transaction Memory (HTM), Haswell, , Intel . , HTM-. — . , , .



— JVM .



— , , . , JVM HTM, , HTM . , : «, , ». ! high level low level . Atomic, . — ! , , .



HTM — . , -. , «synchronized». synchronized - . , , - , , CAS- .



. «synchronized» – «atomic», , , . , . - , . , HTM, xbegin — « ». CPU CPU, , . : , , , ? , - .



, overhead — . , overhead , CAS- . . xbegin, xcommit, : , . , , .



, . -, . -, – , .



, , . , , lock . . , JVM — lock- , overhead .



, . , Skylake. Haswell .



— , hotspot-dev ? , Java ?



— hotspot-dev — , , JVM, Oracle .



— , .



— : , , .



challenge Devexperts



— , , , . ?



— — scale. , , . , . : , , , , . – . , . scale , . - .



, . , — , . : «. , , ». custom- , custom- – 




— ?



— , . .



— ?



-はい。 , : - , -, - – , .



— ?



— , . , , ! – . – . – . – . .



— ?



— . , . , . , : , . . – , , . , . , . . , .



— , .



-はい。





-聞いおください、私たちは長い間話しおいたした。もう䞀぀話したしょう。 私が間違っおいる堎合、あなたはペヌロッパプログラミングコンテストのディレクタヌでもありたすか



「そうでもない。」 私は、北東ペヌロッパ地域ACM-ICPCの審査委員長です。



-これらは最も有名なプログラミングオリンピックですか



-はい、囜際倧孊プログラミングコンテストず呌ばれる、孊生のための最倧玚の名門オリンピックがありたす。 これらは、プロのプログラマヌの最倧のコミュニティであるACMが実斜しおいたす。ACMは、毎幎有名なチュヌリング賞を党員に莈るこずでも知られおいたす。 ノヌベル賞のようなものですが、プログラマヌ向けです。 ランポヌトず他の偉倧な人々の䞡方がこの賞の受賞者です。 そのため、ACMの埌揎の䞋、最倧か぀最も暩嚁のあるプログラミングコンテストが開催されたす-ICPC。



-私たちは定期的にどこを芋おいたすか...



-はい。 Tuzik加熱パッドのように、生埒が定期的に党員を匕き裂く堎所。



-そしお、そこで䜕をしおいたすか



-ICPCは、䞖界䞭の数十の地域で開催されるグロヌバルな競争です。 たた、独自の地域ゟヌンがありたす。 北東ペヌロッパ地域NEERCず呌ばれたす。 ロシア、カザフスタン、りズベキスタン、ベラルヌシ、バルト諞囜が含たれたす。 さらに、システムは非垞に民䞻的です。 チヌムが他の堎所に参加したい堎合、別のゟヌンを芁求する暩利がありたす。 倧孊は競争したす。これは重芁なポむントです。 特定の人ではありたせんが、倧孊はコマンドを送信したす。



-決勝では、倧孊のチヌムは1぀しか存圚できないずいうルヌルがありたす。



-はい。 最終的には、倧孊のチヌムは1぀だけです。 最埌の1人は2回以䞊参加できたせん。 すべおが非垞に厳栌に行われおいるため、プロ意識はありたせん。



むベントの芏暡は巚倧です。 䞖界䞭で、ほが100か囜から数十䞇人がこの遞択に参加しおいたす。 北東ペヌロッパのゟヌンだけでも、マルチレベルシステムに埓っお数千のチヌムから遞択し、決勝に行く子䟛たちを遞択したす。







-遞択はどのように配眮されたすか-暙準化されおいたすか たたは、地域の裁量で



-䞀般的なルヌルがあり、詳现は地域の裁量です。



「これらの詳现を開発したしたか」



-はい。 実際、私は創業者の䞀人でした。 私はただ最初のコンテストに参加したした。



-そしお、これらの競技䌚はどれくらい開催されたしたか



-ICPC自䜓は77幎目から開催されおいたす。 私は96幎以来そこにいたした。 私が初めお参加したずき、ただ地域がありたせんでした。そしお、私たちは近隣の地域に参加しに行きたした。 圌らは手玙を曞き、尋ね、私たちを連れお行った。 私たちはストックホルムに行き、そこで1䜍になりたした。地元の人々は決勝戊のチケットをすべお奪われたした。 そしお、圌らは「ああ、どのように」 そしお、ストックホルムの決勝戊のディレクタヌは、独自の解決策を芋぀けたした、ず圌は蚀いたす。 その埌、All-Union Computer Science Olympiadsの勝者であるAnton Sukhanovがこれを行っおいたした。 圌はこの地域、倧きな囜を組織したした。



-そしお、あなたはおそらく20歳でしたか



-その最初の競技䞭、私は2幎目にいた。 そしお、私のチヌムはロシアの最初のチャンピオンになりたした。私たちは地域で1䜍になり、決勝に進みたした。 決勝戊では、圌らはあたり成瞟が良くありたせんでした。䞋ではなく、䞊でもありたせんでした。 そしお、次の地域では、決勝戊にすでに2回参加しおいたので、参加するこずができなくなりたした。そのため、私はこの党䜓の䞻催者になりたした。 その埌、SukhanovはMicrosoftでの勀務を蟞め、すべおを私に任せたした。 それ以来、私はこれをやっおいたす。



-぀たり、もう20幎ですか



-はい。 ゞュビリヌの準決勝、20番になりたした。 そしお、私は19幎間それを組織しおきたした。 ICPCの最初の数幎間は、ひどいものでした。 これはアニチコフ宮殿で起こった、私は数日間そこに倜を過ごし、実際にそこに䜏んでいた。



珟圚、組織委員䌚の玠晎らしい倧きなチヌム、倚くの人々がいたす。 それぞれに独自の方向性がありたす。 私は審査委員長であり、私の仕事は仕事を遞ぶこずです。 そしお、私はすべおを自分で発明するのではなく、アむデアを送り、䞀緒に集たり、どのタスクが最適かを刀断し、それらに取り組む玠晎らしい同僚がいたす。 次に、最終校正を行いたす、それがすべおです。



過去数幎にわたり、サンクトペテルブルクでITMOベヌスのコンテストを開催しおきたした。 しかし、私たちの囜は倧きいので、サンクトペテルブルクずバルナりルで同時に競技䌚を開催しなければなりたせんでした。なぜなら、ロシアのその地域の孊生は、単にサンクトペテルブルクに飛ぶお金がなかったこずがわかったからです。 最初は2぀でしたが、珟圚は4぀の堎所で同時に過ごしおいたす。 この決定は、人々が参加できるように経枈的な理由で行われたした。 最近の競技䌚は、サンクトペテルブルク、バルナりル、タシケント、トビリシで開催されたした。 私たちは、人々が参加できるように、オリンピアヌドを人々に届けようずしたす。 そしお、人々は決勝に行きたす。



-そしお、私たちの地域からいく぀のチヌムが決勝に行きたすか



「通垞は10を少し超えおいたす。」 今幎、私の意芋では、13たたは14です。



-そしお最埌に、すべおはいくらですか



-最終的には、120〜125チヌム。



-それは私たちの地域が䞖界にあるすべおの玄10分の1であるこずが刀明したしたか



-はい。 私たちの地域は広いです。 そしお、私たちは歎史的にうたく機胜しおいたす。



-このオリンピアヌドの党䞖界の決勝を受け入れたしたか



-はい。 2幎前。 私はこのフィナヌレのディレクタヌでした。



-それはあなたのチヌムが勝ったからですか



-私たちはこれを長い間やっおきたし、勝ったからです。 倚くの芁因がありたした。 オリンピックシステムのようなものです。毎幎決勝戊はさたざたな堎所で開催されたす。 最終送信アプリケヌションのホストを垌望するさたざたな囜。 たた、ある時点でリク゚ストを送信したした。 それが盎接私たちのアむデアだったわけではありたせん。 むしろ、それはコンペティション郚門のアむデアでした「みんな来お、ロシアにはいなかったし、あなたはこれを長い間やっおいお、決勝戊をあなたの堎所で過ごしお」。 私たちは勇気を捚おお、財政を芋぀けたした。 そしお、圌らはリク゚ストを送信したした。 そしお圌らは自宅でフィナヌレを開催したした。 ものすごい経隓でした。



-私の意芋では、あなたはゞュビリヌで過ごしたしたか



-はい。 ファむナル自䜓はナビレむニヌで行われたした。 秘Theは、ファむナルを開催し、すべおの参加者を配眮する必芁があるずいうこずです。 参加者はご自身の費甚で決勝に飛ぶので、完党に提䟛する必芁がありたす。 萜ち着いお、食べお、楜したせる。 フルボヌド。



-そしお䜕人が来たすか 120チヌム、各チヌム、おそらく6人



-3人ずコヌチ。 少なくずも4぀。



-スペア、おそらくそれ以䞊



-予備のものはありたせん。 お金を節玄するためだけにキャンセルされたした。 圌らは、予備のチヌムを匕っ匵る代わりに、より倚くのチヌムを招埅する方が良いず刀断したした。 したがっお、チヌムは正匏に-4人。 その結果、玄1200人がどこかに来たした。 これはバスのストリングです。 すべおが倏でした。 私たちは皆、むサキ゚フスキヌに萜ち着きたした。



-それは癜い倜ずかです。 ホテルはそんなに必芁ですか



-アストリア、ペトロ宮殿-すべおが䞭心にありたす。



-これは実際にはたくさんのお金です。 誰がこれに資金を提䟛したしたか



-それは連邊政府の助成金でした。



-぀たり、あなたは政府たたは教育省に来お、「みんな、これが物語だ」ず蚀ったのですか



-基本的にははい。 ITMOずその孊長ノァシリ゚フの倧きなメリットは、圌が䞀般教育の発展のために倧芏暡な教育助成金を獲埗したこずです。 これはこのオリンピアヌドの独立した助成金ではなく、䞀般的に教育システムを䜜成し、プログラマヌの教育を支揎するずいう非垞に倧きな助成金でした。 そしお、この助成金の䞀郚はICPCファむナルでした。



-぀たり、資金が提䟛されたのですが、あなたはそこで街ず亀流したせんでしたか



-私たちは、譊察がすべおを同行し、バスを䜜るために、倖郚からの支揎の問題に぀いお垂ず亀流したした。 垂内の広告。



-そしお、なぜ広告なのか



-そしお、あなたは知っおいる、郜垂自䜓が瀺唆した。 垂には゜ヌシャル広告スポットがありたす。 そしお、垂はこれに参加し、支揎し、支揎しおいるため、「ここでいく぀かの堎所をあなたに割り圓おおいたす」ず蚀われたした。 それらずずもに、広告レむアりトを開発したした。 そしお圌女はそこで絞銖刑になりたした。 むベントに来おくれおうれしいです。広告がぶら䞋がっおいたす。



そしお、これは本圓に玠晎らしいむベントです。 これは、䞖界で最も暩嚁のあるプログラミング競争です。 ぀たり、それが私たちの街に来たずいう事実は本圓に玠晎らしいです。 これは倧きな成果です。








参照資料






All Articles