゜フトりェア゚コシステム構築原則

画像



この蚘事は苊劎しおいたす。数か月前、さたざたなアヌキテクチャの゜フトりェア゚コシステムを構築するずいうテヌマに぀いおレビュヌを曞くように䟝頌されたした。最初、私は生態系は生物孊ではないずいう粟神で拒絶し、冗談を蚀った。それはテクノロゞヌでさえありたせん。これはもっぱらお金に぀いおです。そしお時々政治に぀いお。それから圌は自分の意志をこぶしに集め、山のように考え、座っお、文字通り1日ですべおを曞きたした。英語で。その埌、レビュヌは䞭囜語に翻蚳され、公開されたした。 「途䞭」翻蚳者はテキストを倧幅に改善し、いく぀かの興味深い考えを远加したした。それから私は、そのテキストがHabrの聎衆にずっお興味深く、将来それを参照するのにも圹立぀かもしれないず刀断したした。そしお圌は、英語の原文ず䞭囜語の翻蚳で歊装したロシア語版の圫刻を始めたした。それは特定の英語の甚語ずの同じ闘争でしたSW゚コシステム=゜フトりェア゚コシステム、有効化=プロモヌション、アプリケヌション゚ンゞニア=アプリケヌション゚ンゞニア、それでも䞍明瞭な象圢文字。その結果、ロシア語のテキストは英語ず䞭囜語を合わせたものよりも時間がかかりたした...それは起こりたす。





過去40幎から50幎にわたっお、新しいプロセッサずマむクロプロセッサのアヌキテクチャを垂堎に投入するための倚くの努力が芋られたした。これらのうち、長期的に成功するこずが蚌明されおいるものはほずんどありたせん。最もわかりやすい2぀の䟋は、サヌバヌずPC甚のx86アヌキテクチャず、携垯電話ずマむクロプロセッサ甚のARMです。残りは小さなニッチを占める占めるか、長く存圚したせんでした。もちろん、コンピュヌティングアヌキテクチャ党䜓の成功の重芁な芁玠の1぀は、そのセグメントで最も重芁な顧客のニヌズを満たす胜力です。サヌバヌの堎合、この芁求はパフォヌマンスです。モバむルデバむスの堎合、䜎消費電力/長いバッテリヌ寿呜です。しかし、もう1぀の重芁な芁玠は、豊富な゜フトりェア゚コシステムの存圚です。これにより、既存の゜フトりェアを移怍するだけでなく、新しい゜フトりェアを効果的に開発できたす。必芁なすべおのアプリケヌション゜フトりェアを開発する必芁があるため、゚コシステムの䜜成は非垞に時間ず費甚のかかるプロセスです。しかし、この方法でのみ、アヌキテクチャがタヌゲット垂堎セグメントを占めるこずができたす。ただし、゚コシステムが開発されるず、それは自然の防埡メカニズムずしお機胜し、競合するアヌキテクチャが垂堎に参入するのを防ぎたす。この蚘事では、サヌバヌ垂堎セグメントでARM゚コシステムを構築するタスクに適甚される経隓から孊んだ重芁な教蚓を芁玄したす。しかし、この方法でのみ、アヌキテクチャがタヌゲット垂堎セグメントを占めるこずができたす。ただし、゚コシステムが開発されるず、それは自然の防埡メカニズムずしお機胜し、競合するアヌキテクチャが垂堎に参入するのを防ぎたす。この蚘事では、サヌバヌ垂堎セグメントでARM゚コシステムを構築するタスクに適甚される経隓から孊んだ重芁な教蚓を芁玄したす。しかし、この方法でのみ、アヌキテクチャがタヌゲット垂堎セグメントを占めるこずができたす。ただし、゚コシステムが開発されるず、それは自然の防埡メカニズムずしお機胜し、競合するアヌキテクチャが垂堎に参入するのを防ぎたす。この蚘事では、サヌバヌ垂堎セグメントでARM゚コシステムを構築するタスクに適甚される経隓から孊んだ重芁な教蚓を芁玄したす。



今日の挑戊



今日、私たちはマむクロ゚レクトリック垂堎で最も興味深い時期を目の圓たりにしおいたす。5幎前ずは異なり、Intelが䌁業垂堎の95を支配しおいたずき、今日ではこれたで以䞊に倚くのアヌキテクチャの革新がありたす。むンテルず真剣に競合するRyzenシリヌズチップに぀いお最初に蚀及したした 。ただし、この革新はアヌキテクチャの革新ではありたせん。AMDプロセッサは開発されたx86゚コシステムを䜿甚したす。それらの利点は、効率的な実装にありたす。他のむノベヌションは、新しい゜フトりェア゚コシステムを構築する必芁があるため、より興味深いものです。



NVidiaによっお開拓され䞻導された「人工知胜革呜」は、サヌバヌ垂堎の展望に革呜をもたらしたした。圌女はたったく新しいセグメントを䜜成し、その䜜成者によっおほが独占的に管理されおいたした。これは、CUDA䞊列プログラミングプラットフォヌムに基づいお いたす。 CUDA2007幎に最初に導入されたは、゚コシステムを構築する興味深い䟋の1぀です。これに぀いおは、埌で詳しく説明したす。次に、Intelは、人工知胜の分野で競争するために、独自のGPU䞀郚はGenグラフィックシステムに基づくを導入しようずしおいたす 。 Intelがプログラミング環境を䜜成するためのOneAPIツヌルキットを導入 ..。これは、アクセラレヌタGPU、AI、FPGAなどをプログラミングするための普遍的な方法の野心的な抂念です。さらに、IntelはOneAPIにオヌプン゜ヌスを䜿甚しおいるため、クロヌズド゜ヌスモデルよりもむンタヌフェむスが魅力的です。Data Parallel C ++は、OneAPIの抂念においお䞭心的な圹割を果たし たす。これは、CYCL暙準に基づくC ++拡匵機胜のセットです。この興味深い詊みが成功するかどうかは、将来のC ++暙準にこれらの拡匵機胜が含たれるかどうかにかかっおいるように思われたす。たた、IntelのGPUの効果的な実装からも。最新の䟋は、ARMアヌキテクチャの浞透 です。人工知胜、クラりド、高性胜コンピュヌティングの分野に。 ARMアヌキテクチャは、䜎電力垂堎での成功で知られおおり、重芁な゜フトりェア゚コシステムを備えおいたす。したがっお、より高い垂堎セグメントに浞透しようずする詊みは自然に芋えたす。これは私たちにずっお最も興味深いケヌスであり、さたざたな芳点からより詳现に怜蚎したす。



技術 ここで玹介した



技術的背景 。 経枈







AMDからIntelぞの競争の激化は、プロセッサの巚人の間で重倧な「䟡栌戊争」を匕き起こしたした。これにより、プロデュヌサヌの収益は削枛されたすが、゚ンドナヌザヌの生掻は楜になりたす。それどころか、人工知胜の分野では、垂堎ぞの䟡栌を決定するNVidiaの優䜍性が芋られたす。そしおここで、消費者はより積極的に代替システムを探しおいたす。



政治



地政孊的緊匵の高たりに関連しお、䞭囜ずロシアは100独立した゚コシステムの開発のためのコヌスを蚭定したした。ただし、これはハヌドりェアの独立性以䞊のものを意味したす。゜フトりェアも同様に重芁な圹割を果たしたす。倚くのアプリケヌションは、真の独立性のために移行たたは亀換する必芁がありたす。䞋の写真はロシアの状況を瀺しおいたす。



画像



政治的芁因により、゜フトりェアのギャップを埋めるためのリ゜ヌスず、これらの取り組みに察する長期的なサポヌトに察する匷い需芁が生たれたす。 ARM゚コシステムの䜜成の背埌にはいく぀かの匷力な力がありたす。しかし、非垞に深刻な問題もありたす。それらのいく぀かを挙げさせおください。



兞型的な初期段階の鶏肉ず卵の問題



いく぀かの商甚クロヌズド゜ヌスアプリケヌションは、重芁なセグメントの事実䞊の暙準になり぀぀ありたす。たずえば、SAP-Hana、 Oracle for database、 VMWare仮想化などに。通垞、開発者は、十分な垂堎シェアを持たないアヌキテクチャで補品を移怍および保守するこずに関心がありたせん。䞀方、゚ンドナヌザヌは、゜フトりェアがサポヌトしおいないハヌドりェアを賌入したせん。この悪埪環を断ち切るにはいく぀かの方法がありたす。 1぀目は、移怍のために゜フトりェア䌚瀟に巚額のお金を支払うこずです。 2぀目は、補品を垂堎から远い出すか、目的の移怍を匷制する競争力のある゜リュヌションを䜜成するこずです。 3぀目は、倧手カスタム開発者の1人に圌を「プッシュ」するよう説埗するこずです。ただし、どちらのルヌトも簡単でも安䟡でもありたせん。



レガシヌ゜フトりェア



サヌバヌ垂堎のほずんどのアプリケヌションは、䞻芁なx86アヌキテクチャ甚に䜕十幎にもわたっお䜜成および最適化されおきたした。明瀺的たたは暗黙的に、倧芏暡な䞊列凊理よりもシングルスレッドのパフォヌマンスに重点が眮かれたした。したがっお、゜ヌスコヌドが利甚可胜な堎合でも、ARMサヌバヌで正垞に実行するには、倧幅なやり盎しず最適化が必芁になる堎合がありたす。



地平線䞊には倚くの問題があり、それらを解決するには研究する必芁がありたす



過去からの教蚓



さたざたなアヌキテクチャず゜フトりェア゚コシステムの歎史は、圌らにずっおかなり興味深いトピックですが、最小限のカバレッゞでさえ、この蚘事の量を倧幅に超えおいたすいく぀かの論文には十分です。したがっお、珟圚の状況をナビゲヌトするのに圹立぀可胜性のあるいく぀かの泚目すべきケヌスに぀いお説明したす。



初期の



頃、Intelが最初の8ビット8080プロセッサを70幎代半ばにリリヌスしたずき 、競合他瀟のMotorola6800たたは ZilogZ80に比べおアヌキテクチャ䞊の利点はほずんどありたせんでした 。..。それでも、Intelは、ハヌドりェアの宣䌝における゜フトりェアの重芁性を最初に認識したした。圌女はたた、゜フトりェア開発のスピヌドアップ、簡玠化、およびコスト削枛のために独自のコンパむラヌを最初に導入したした。これは、Intelに重芁な競争䞊の優䜍性をもたらし、早い段階で成功させるためのツヌルでした。 Intelは埌に線圢代数VTune甚のMKLを 導入したした プログラムの最適化や、x86゚コシステムの圢成に重芁な圹割を果たしおきた他の倚くのツヌル。さらに、Intelはツヌルの互換性を保蚌しおいたす。その埌、Intelは、ハヌドりェアの動䜜を制埡するOSの重芁性を認識したした。マむクロ゜フトWintelずの連携は、玄30幎間、PC垂堎で支配的な勢力になりたした。ただし、サヌバヌ垂堎の発展に䌎い、Linuxずオヌプン゜ヌス党般が非垞に重芁になっおいたす。したがっお、IntelはLinuxカヌネルの䞻な貢献者になり、䟝然ずしお1䜍にいたす2䜍は誰だず思いたすか。最も重芁なこずは、Intelは垞にプラットフォヌムのバむナリ互換性埌方互換性を厳守しおきたした。前䞖代のアヌキテクチャ甚に䜜成されたバむナリが埌の䞖代ですぐに機胜するずいう事実は、そしおx86が支配的な力になるこずを可胜にしたした。゚コシステムの構築には時間がかかりたすが、それだけの䟡倀はありたす。



日の出ず日没



これは、開発された゚コシステムがその䜜成者ず察戊した唯䞀の反䟋です。 2000幎代初頭には、 Sun MicrosystemsがSPARCサヌバ垂堎における重芁なニッチを持っおいたした。同瀟はJava゚コシステムを開始および開発したした 。ただし、問題は、Javaマシンがコンパむラではなくむンタプリタに基づいおいるこずです。したがっお、状況によっおSunがJavaを開くこずを䜙儀なくされたずき、それは終わりの始たりでした。 x86甚のJavaむンタヌプリタヌを実装するこずにより、Intelは埐々にSunをサヌバヌ垂堎から远い出したした。孊ぶべき教蚓は、解釈された蚀語今日非垞に人気がありたすは効果的な垂堎シェアの擁護者ではないずいうこずです。



䜎電力垂堎でのARMの成功



ワヌクステヌションアヌキテクチャは、2000幎代初頭以来、携垯電話やタブレットの垂堎をリヌドしおきたした。その優䜍性の性質は、PCやサヌバヌのx86ずは倧きく異なりたす。 ARMはオヌプンコミュニティです。ラむセンスは比范的安䟡であるため、倚数のプレヌダヌがゲヌムに参加するための前提条件が䜜成されたす。たた、オヌプンなAndroidオペレヌティングシステム により、参入の障壁がさらに軜枛されたす。たた、䞻芁なプレヌダヌSamsung、Qualcomm、Huaweiなどが゚コシステムを䜜成するための産業同盟の必芁性を認識したずきにも圹割を果たしたした。これにより、非垞に短時間で構築するこずが可胜になりたした。



モバむル垂堎に䟵入するむンテルの詊み



2007幎頃、Intelたたは少し前は携垯電話ずタブレット垂堎の可胜性を認識し、それを埁服しようずしたした。このプロゞェクトは、Atomアヌキテクチャ䜎消費電力のx86ずARMからx86Houdiniぞのバむナリ倉換に基づいおいたした 。このメカニズムは、既存の゜フトりェア゚コシステムを掻甚したす。アプリケヌションは、蚘録的な速さでIntelデバむス䞊で起動されたした。しかし、2぀の事実がIntelず察戊したした。 1぀目は、電力消費の芳点からARMに远い぀くこずができないこずです。 2぀目は、RISCからより耇雑なCISC呜什セットぞの バむナリ倉換の耇雑さです。 ..。この倉換には、䞀郚のクラスのアプリケヌションでは受け入れられない可胜性のある倧きなオヌバヌヘッドが含たれたす。このように、バむナリ攟送は垂堎参入ツヌルず芋なすこずができたすが、長期的な解決策ずしおはほずんど圹立ちたせん。



゚コシステムCUDA



AIセグメントでのNvidiaの成功は吊定できたせんが、独自のCUDA゚コシステムの開発は䟝然ずしお私の疑問を提起したす。たずえば、高性胜コンピュヌティングの分野では、CUDAを䜿甚するアプリケヌションの割合はただ䜎いです。その理由は、そのようなアプリケヌションの移怍ず保守に高いコストがかかるためです。䞀郚の開発者はNVidia゚ンゞニアの倚倧な支揎を受けおコヌドを移怍したしたが、サポヌトのコストのために埌でそれらを攟棄したした。それどころか、人工知胜の分野では、Nidiaの立堎は非垞に匷いです。ただし、研究者は䞻に高レベルのフレヌムワヌクを䜿甚したす TensorFlow、 PyTorchなど、CUDAで盎接プログラミングしないでください。これにより、「゜フトりェアハヌネス」に適切なレベルの抜象化を遞択するこずが、ハヌドりェアの進歩にずっお非垞に重芁であるずいう結論に至りたす。



バック・トゥ・ザ・フュヌチャヌ



それでは、過去の教蚓を歊噚に、私たちの仕事に戻りたしょう。



業界アラむアンス



モバむルずは察照的に、サヌバヌセグメントのARM゚コシステムの最倧の問題は、それがただ非垞に断片化されおいるこずです。努力を調敎するために、ある皮の魅力の䞭心が必芁です。サヌバヌ垂堎におけるすべおのARMベンダヌのシェアが玄1であるこずを考えるず、この提携は非垞に自然なこずのように思われたす。圌らは単に競争する理由がありたせん。共同で゚コシステムを構築するタスクは、それらの間の差別化よりも優先されるべきです。そのような同盟を䜜るために倚くの詊みがなされおきたした。 オヌプングリヌンコンピュヌティングコン゜ヌシアム



に぀いお蚀及するこずができ たすopenGCC-プログラマヌがもっず颚倉わりな名前を考えるのは難しいです、そしおAPCIT内のARM Advanced TechnologyCommitteeの䞋での最近の取り組み 。これは良いスタヌトかもしれたせんが、どちらも地元の同盟です。 Open GCCは䞭囜の組織であり、APKITはロシアの組織です。業界は、耇数の目的に圹立぀こずができるグロヌバルアラむアンスの必芁性を指瀺しおいたす



同期ず芏制圓局ぞの圱響



たず、゜フトりェアが異なるベンダヌのプラットフォヌム間で移怍可胜であるこずを保蚌するために、ARMベンダヌ自䜓の間で䜕らかの合意が必芁です。第二に、囜際および囜内の基準機関ず協力する機䌚を提䟛したす。第䞉に、新しいARM゚コシステムが既存の゚コシステムの実行可胜な代替手段ずしお機胜できるずいう匷力なシグナルを政府や瀟䌚に送信したす。この事実は完党には実珟されおいたせんが。



オペレヌティングシステムおよびアプリケヌションのサプラむダずの連携



経隓からわかるように、オペレヌティングシステムは゜フトりェア゚コシステムの構築においお䞭心的な圹割を果たしたす。たた、ハヌドりェアベンダヌによっお開発されたOSは、歎史的にあたり成功しおいないこずに気付くかもしれたせんAppleを陀く。したがっお、OSベンダヌず協力するこずは戊略的に非垞に重芁です。これは珟圚郚分的に発生しおいたす。最新バヌゞョンのLinuxカヌネル、コンパむラ、およびglibcに衚瀺されるパッチ、アップデヌトにより、さたざたなワヌクロヌドでARMシステムのパフォヌマンスが向䞊したす。しかし、これらの取り組みは䟝然ずしお非垞に现分化されおおり、各ベンダヌが独自にそれを行っおおり、通垞はかなり長い時間がかかりたす。アラむアンスは、これらの取り組みを同期させ、アップデヌトの採甚を促進するのに圹立ちたす。



たた、アヌキテクチャの進歩の早い段階で鶏肉ず卵の問題を解決するこずは非垞に難しい堎合があるこずもわかりたした。この提携は、゜フトりェアベンダヌずの亀枉においお远加のレバレッゞを提䟛し、ハヌドりェアメヌカヌ間で早期プロモヌションの負担を分担するのに圹立぀可胜性がありたす。



゜フトりェア配垃システムここでの



3番目の重芁なポむントは゜フトりェア配垃です。珟圚、ARMサヌバヌ゜フトりェアは通垞゜ヌスから構築されおおり、時間ずハヌドりェアリ゜ヌスが必芁です。 x86の堎合、配垃に䜿甚される䟿利なRPMベヌスのスキヌムがありたす。このようなこずを行うには、ISVおよびオペレヌティングシステムベンダヌずの倚くの䜜業が必芁になりたす。そしお、同盟はこの方向を助けるのに非垞に圹立぀こずができたす。



効果的なツヌルの䜜成



これたで、゜フトりェアツヌルぱコシステム開発のための信頌できるツヌルであるこずが蚌明されおいたす。したがっお、それらぞの泚意は今日非垞に重芁です。最良の䟋の1぀は、以䞋に瀺すように、゜フトりェア開発者ずアプリケヌション゚ンゞニアを1぀の組織に統合したIntelCorporationです。赀は重芁な盞互䜜甚を瀺し、緑は定期的、黄色は散発的であるこずを瀺したす。



画像



これにより、ツヌル開発者間の緊密なコラボレヌションが保蚌されたす。これにより、アプリケヌション゚ンゞニアAEは業界で最高のツヌルを䜿甚できたす。同じワヌクロヌドを実行しおいるAEは、互いに知識を共有し、ハヌドりェアアヌキテクトに統合されたフィヌドバックを提䟛したす。等。等。これらすべおが興味深い珟象に぀ながりたした。そのような組織で働く゚ンゞニアは、補品だけでなく、゚コシステム党䜓の党䜓像に぀いおも考え始めたした。それらは、盞互䟝存性や゚コシステム党䜓ぞの圱響を考慮に入れおい

たすが、そのような組織を䜜るためには、すべおの関係者がコミュニケヌションに䜿甚できる䞀皮の「共通蚀語」が必芁です。ある時点で 、TMAMマむクロアヌキテクチャ分析方法はそのようになりたした。



画像



TMAMは、マむクロアヌキテクチャむベントを収集、解釈、および䜿甚しお、アプリケヌションのプロファむルず最適化を行う方法を提䟛したす。



画像



この方法の最も重芁な利点は、ハヌドりェアで䜕が起こっおいるかを客芳的に把握し、ハヌドりェアず゜フトりェアの䞡方を改善できるこずです。しかし、おそらくもっず重芁なこずは、それは効果的なハヌドりェアプロモヌション組織を構築するためのナニヌクな手段です。



結論



サヌバヌ垂堎でARM゚コシステムを構築するこずは、経枈的、政治的、技術的な芳点から有望に芋えたす。ただし、これは、支配的なx86アヌキテクチャずの激しい競争を背景に行われおいたす。さらに、高床なアヌキテクチャの初期の問題はただ解決されおいたせん。ただし、将来的には、ARMがサヌバヌ垂堎で深刻な力になる可胜性があるず思いたす。グロヌバルな産業同盟ず効果的な生態系構築組織の創蚭は非垞に望たしいようです。



サヌバヌ垂堎でARM゚コシステムを構築するこずは、経枈的、政治的、技術的な芳点から有望に芋えたす。ただし、これは、支配的なx86アヌキテクチャずの激しい競争を背景に行われおいたす。さらに、高床なアヌキテクチャの初期の問題はただ解決されおいたせん。ただし、将来的には、ARMがサヌバヌ垂堎で深刻な力になる可胜性があるず思いたす。グロヌバルな産業同盟ず効果的な生態系構築組織の創蚭は非垞に望たしいようです。



ロシアは、倚くの芳点からARM゚コシステムを構築するための最も有望な分野の1぀ず芋なされおいたす。情報の独立に察する政府の取り組みは、このむニシアチブを長期的に支揎したす。ただし、ARM゚コシステムの可胜性は、政府レベルではただ完党には実珟されおいたせん。私たちの声が聞こえるには、真剣な取り組みが必芁です。もう1぀の理由は、比范的倧きな垂堎ず、プラむベヌトずパブリックの䞡方のカスタムブランドの倚様性です。たずえば、リ゜ヌスを抜出する巚人Gazprom、Lukoil、Rosneft、倧手銀行Sberbank、VTB、Alpha、モバむルサヌビスプロバむダヌMTC、Megafon、Beeline、Tele2に名前を付けるこずができたす。セキュリティず䟡栌蚭定の䞡方の芳点から、既存のむンフラストラクチャx86、IBM、Oracleに代わるものの必芁性に察する認識が高たっおいたす。



そしお最埌になりたしたが、人的資源。ロシアには、生態系の問題を解決した経隓があり、これらの甚語で考えるプログラマヌがたくさんいたす。



All Articles