Design: pThreads任意のETA

䜜成日 2017幎02月21日  Â·  20コメント  Â·  ゜ヌス: WebAssembly/design

WebAssemblyでのスレッドの最初の実装に関するETAはありたすか

--R

最も参考になるコメント

このプロゞェクトにはメヌリングリストやその他のフォヌラムがないため、問題远跡システムは、蚭蚈プロセスに぀いお質問できる唯䞀の堎所です。 人々が質問できる堎所があるこずは䟡倀があるので、私は人々が質問をするために問題远跡システムを䜿い続けるこずを勧めたす。

党おのコメント20件

次の数四半期のある時期は、おそらく誰もが蚀うこずができるほど正確です。 ただし、問題を提出するために問題トラッカヌを予玄しおください。

このプロゞェクトにはメヌリングリストやその他のフォヌラムがないため、問題远跡システムは、蚭蚈プロセスに぀いお質問できる唯䞀の堎所です。 人々が質問できる堎所があるこずは䟡倀があるので、私は人々が質問をするために問題远跡システムを䜿い続けるこずを勧めたす。

@sunfishcode 、十分に公平ですが、そのようなリストを䜜成するこずをお勧めしたす。 課題远跡システムがその代わりになるずは思いたせん。

w3公開リストがありたす。 ただし、トラフィックはそれほど倚くありたせん。 私が信じおいるIRCもありたすか ある時点でりェブサむトに掲茉されおいたず思いたすが、りェブサむトのコミュニティセクションで䞡方が盎接リンクされおいればいいのですが。 私は問題を開きたすが、あなたが誰もが䞀般にリンクされおいるこずを「公開」するこずを奜む方法がわかりたせん

ここでの手順

私たちは人々にgithubを䜿うように指導しおきたした。 誰もがそれを奜きずいうわけではありたせんが、倚くの堎所よりも1぀の堎所にある方が良いです。

こんにちは@ rossberg-chromiumそしおタむムリヌな回答に感謝したす。

ただし、問題を提出するために問題トラッカヌを予玄しおください。

@jfbastienが指摘したように、暙準的な方法でそれを行うのに最適な堎所のように思われるので、ここで尋ねたした。
さらに、スレッドのサポヌトは、webAssemblyの成功たたは倱敗ずなる蚭蚈機胜です。
ロゎのコンテキストや「Javaに実装されおいないのはなぜですか」よりも、問題ずしお提起されおいるず思いたす。

私が間違っおいる堎合は、共有メモリ/スレッドの実装に埓う堎所を教えおください。
それはオヌプンなプロセスでなければならないので、私は蚀いたいです。

--R

@RobertoMalatestaスレッドは非垞に重芁であるこずに同意したすが、WebAssemblyの最小限の実行可胜な補品にスレッドを詰め蟌むよりも、スレッドを正しくするこずが重芁でした。 私たちの掚論は単玔ですasm.jsはこの機胜なしで成功を収めおいたす。

スレッドは、いく぀かの重芁なアプリケヌションにずっお間違いなくメむクたたはブレむク機胜ですが、すべおのアプリケヌションに適しおいるわけではありたせん。 GC、れロコストの䟋倖凊理、保蚌された末尟呌び出しなどに぀いおも同じこずが蚀えたす。

MVPを遞択するずいうこずは、最初の立ち䞊げ時に党員を満足させるわけではないこずを意味したす。 たた、すべおを蚭蚈、仕様化、実装する前に、WebAssemblyを䜿甚する人もいるこずを意味したす。

そうは蚀っおも、私たちは倚かれ少なかれJavaScriptSharedArrayBufferアプロヌチをWebAssemblyに採甚するこずを期埅しおいたす。 私たちの倚くは、最初からその仕様に関䞎しおきたした。 これにより、C ++に䌌た䜎レベルの機胜に加えお、futexのようなAPIが远加されたす。 逐次䞀貫性よりも倚くのメモリ順序で成長する䜙地がありたす。 そのための正匏なメモリモデルを䜜成するための進行䞭の䜜業がありたす。

SABはTC39の「ステヌゞ4」にありたす。぀たり、SABは完了し、出荷の準備ができおおり、䜿甚する準備ができおいたす。 WebAssemblyに採甚するのはそれほど難しくないず思いたす。

@jfbastien掞察に満ちた情報をありがずう。

そうは蚀っおも、私たちは倚かれ少なかれJavaScriptSharedArrayBufferアプロヌチをWebAssemblyに採甚するこずを期埅しおいたす。...
SABはTC39の「ステヌゞ4」にありたす。぀たり、SABは完了し、出荷の準備ができおおり、䜿甚する準備ができおいたす。 WebAssemblyに採甚するのはそれほど難しくないず思いたす。

すごい。 私は、単にスレッド化に飢えおいる倚くのC ++コヌドでそれをキックタむアしたいず思っおいたす。
私は定期的にWebWorkersをTS / JSアプリケヌションに䜿甚しおおり、私はそれらのファンではないず蚀わせおくれたすが、最初のスタヌトずしお䜿甚するこずもできたす。

スレッドは非垞に重芁ですが、WebAssemblyの最小限の実行可胜な補品にスレッドを詰め蟌むよりも、スレッドを正しくするこずが重芁でした。 私たちの掚論は単玔ですasm.jsはこの機胜なしで成功を収めおいたす。

MVPが迅速に脱出する必芁性スタックベヌスに移行するためにASTを削陀する理由だったず思いたすず、さらなるステップを蚈画するために必芁な泚意を完党に理解しおください。

スレッドは、いく぀かの重芁なアプリケヌションにずっお間違いなくメむクたたはブレむク機胜ですが、すべおのアプリケヌションに適しおいるわけではありたせん。 GC、れロコストの䟋倖凊理、保蚌された末尟呌び出しなどに぀いおも同じこずが蚀えたす。

emscriptenの長幎のナヌザヌずしお、私はWebAssemblyがJavascriptアプリケヌションスタックの制限からより切り離されおいるこずを望んでいたす。

Wasmは、1最高のパフォヌマンスを目指し、2゜ケット、メモリ/スレッド、GDI、fsにPosix / Unix / BSD暙準を提䟛する必芁がありたす。 そうすれば、それは、統合されたタヌゲットプラットフォヌムずしおモバむルデバむスに、そしおクラりド展開可胜なアプリケヌションをめぐっお競合するサヌバヌに埋め蟌むこずができる、OSのような薄いレむダヌになりたす。

これは長期的な未来に向かっおいる方向ですか、それずも私はボヌトを完党に逃しおいたすか

あなたの仕事にもう䞀床感謝したす、

ロベルト

Wasmは、LLVMなどのコンパむラがナヌザヌアクセス可胜なメモリに配眮する必芁があるものからロヌカルを分離する方法のために、いく぀かのスタック制限から確実に切り離されおいたす。

スレッドを䜿甚するず、特にワヌカヌベヌスでない堎合は、より倚くのパワヌを埗るこずができたす。

そうは蚀っおも、あなたの正確なアむデアに぀いおもっず詳しく知るのは良いこずです。 ナヌスケヌスは䜕ですか、C ++でどのように回避し、wasm実装はどのようにそれを行いたすか

私はあなたがすべおの答えを思い付くずは思わない 今頭に浮かぶのはたさに。 Fwiw C ++には、スタック制限に関するいく぀かの提案がありたす。 SG14サブグルヌプをチェックしおください。

詳现が䜎くお申し蚳ありたせんが、私は👶🌯の䞋にいたす。 埌でもっずよく答えたす

詳现がわからなくおすみたせん、私はbaby :: burritoの䞋にいたす。 埌でもっずよく答えたす

あなたは赀ちゃんブリトヌの䞋にいたすか 笑

@qwertie

あなたは赀ちゃんブリトヌの䞋にいたすか 笑

文字通り、包たれた赀ちゃん。

こんにちは@jfbastien 、

あなたの正確なアむデアに぀いおもっず詳しく知るのは良いこずです。 ナヌスケヌスは䜕ですか、C ++でどのように回避し、wasm実装はどのようにそれを行いたすか

䞀般的に、私の䜿甚䟋はシミュレヌション゜フトりェアの構築です。蚈算の郚分では、C ++、C / OpenCL、およびGPUテクノロゞのおかげで、制限はマシンのみになりたす。

フロント゚ンドでは、スタックHTML5 + CSS + Javascript + Typescriptが、䞭芏暡から倧芏暡の耇雑なアプリケヌションを開発するための有効で実蚌枈みのポヌタブルな方法であるこずが蚌明されおいたす。

_ JS Webスタック Typescriptのような構造化蚀語が远加されおいるは最近非垞に優れおいるため、ほずんどのアプリケヌションでemscriptenに頌ったりwasmを詊したりする必芁はありたせん。_

私は、高レベルの目暙ずWebアセンブリのナヌスケヌス、さらには非Web埋め蟌みドキュメントに぀いおもほが完党に同意したす。

_ W ebAssemblyは、より高速にネむティブCアプリの骚に加えお、たずえば5のオヌバヌヘッドでより倚くのメモリをより自由に䜿甚し、ポヌト/゜ケットを完党に実装できる堎合、少なくずも私にずっおは関連するテクノロゞヌになりたす通垞のOSず同じようにスレッドを実行できたす。_

Wasmマシンは、サむズが非垞に滑らかで、高速で予枬可胜である必芁があるため、GCに固執しないでください。GCはITのポンゞヌスキヌムです。手​​遅れになり、サむクルが倱われるたで、債務を負い、割り圓おを気にしたせん。 。 さらに、高性胜のwasmコアマシンがあれば、その䞊にGCを構築できたす。

滑らかにするために、Javascriptから埐々に切り離しおいきたす。 任意の蚀語のネむティブコンパむラを䜿甚しおいる堎合、スクリプトは必芁ありたせん。ずにかく、C゜ヌスでコンパむルするだけでDuktape / Lua /その他を埋め蟌むこずができたす。

Mozillaサむトのどこかで、wasmネむティブDOM操䜜の実装に関するドキュメントを芋たした。DOM操䜜は本質的にシヌケンシャルであり、HTML5 / CSS / JSスタックの最も時間のかかる偎面の1぀であるため、あたり有甚ではないず思いたす。超高速のマルチスレッドwasmを䜜成するのは、DOMの倉曎をシリアル化しおキュヌで埅機させるためだけです。そうするず、すべおのパフォヌマンスが倱われ、C / C ++を䜿甚するよりもTypescriptをトランスパむルする方が適切です。 この堎合、私は盎接OpenGLアクセスを奜みたす最初はいく぀かのWebGL実装で、次にOpenGLネむティブで。 グラフィックカヌドにアクセスするず、オヌバヌヘッドが小さいかたったくないGPU / CUDA機胜を提䟛するのに圹立ちたす。
これを確認しに行っお、これに取り組む問題273を取埗したした

すべおのベンダヌや独立系䌁業が小さなwasmマシンを共有するこずで、さたざたなOS、バヌゞョン、アヌキテクチャに察応するツヌルチェヌンが少なくずも4぀あるモバむル開発の悪倢を解決できたす。
グラフィック機胜ず入力機胜は異なる堎合がありたすが、1぀のwasmに開発しおから、機胜APIにク゚リを実行したり、同じアプリケヌションを別のアプリストアにデプロむしたりするこずもできたす。
長期的には、サヌバヌアプリケヌションでも同じであり、機胜DB接続プロトコルずプヌル、む゚ロヌペヌゞシステム、メッセヌゞングプロトコルずシステムなどに぀いお䜕らかの合意に達し、JEEプラットフォヌムのように暙準仕様にパックしたす。 倚くの抂念的な䜜業は、過去20幎間ですでにレむアりトされおいたす。

私はあなたがすべおの答えを思い付くずは思わない 今頭に浮かぶのはたさに。 Fwiw C ++には、スタック制限に関するいく぀かの提案がありたす。 SG14サブグルヌプをチェックしおください。

確かにやりたす。

ご理解ずご協力をよろしくお願いいたしたす。

ロブ

小さな远加ずしお、スレッドが実装されおいる堎合、スタックサむズを任意に倧きくするこずができれば、たたはその代わりに、少なくずも64MBに蚭定できれば玠晎らしいでしょう。 これは、私のナヌスケヌスが2぀のスレッドを䜿甚するアプリケヌションであり、非メむンスレッドにはかなり倧きなスタックが必芁なためです。

@jjpeは、このリポゞトリではなく、wasmを察象ずする特定のツヌルチェヌンemscriptenなどのリク゚ストになりたす。これは、wasmプラットフォヌム自䜓に関するものではなく、ツヌルチェヌンの実装たたはABIの遞択の問題であるためです。 たずえば、https//github.com/kripken/emscripten/で問題を開くこずができたす

以前のメッセヌゞで提案したこずのいく぀かは、最新のWASI提案に含たれおいるようです。
芋る
https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/

亀差指。

--R

FWIW珟圚の状況では、Chromeはバヌゞョン74でwasmスレッドのサポヌトを出荷しおおり、Firefoxにはただ出荷されおいない実装があり、Emscriptenにはpthreadsのサポヌトhttps://emscripten.org/docs/porting/pthreads.htmlがありたす。 wasmが利甚可胜になりたした。

たた、WASIはシステムコヌルAPIであり、特定のwasm埋め蟌みたたはツヌルチェヌンがスレッド/アトミックをサポヌトするかどうかにほが盎亀したす。

ChromeずFirefoxのスレッドAPIの䜿甚方法に関するドキュメントはありたすか

それは䞀皮の組み合わせです。 ブラりザのwasm゚ンゞンは、wasm仕様https://github.com/WebAssembly/threads/tree/master/proposals/threadsのthreads / atomics拡匵機胜を実装しおおり、共有されたwasmメモリをむンスタンス化できたす。 Webでは、Webワヌカヌを䜜成し、postMessageを介しおメモリおよび関連するwasmモゞュヌルをワヌカヌに送信できたす。 次に、ワヌカヌおよびメむンスレッドたたは別のワヌカヌの共有メモリを䜿甚しおモゞュヌルをむンスタンス化し、むンスタンスがメモリを共有したす。 仕様提案の抂芁https://github.com/WebAssembly/threads/blob/master/proposals/threads/Overview.mdには小さな䟋がありたすが、他の䟋はわかりたせん。

こんにちは@dschuffず䞊蚘の答えに感謝したす。
以前のメッセヌゞでは、pthreadだけでなく、wasmをよりカヌネルに進化させるずいう望たしい進化に぀いお蚀及しおいたした。2010幎以降、emscriptenをフォロヌしお䜿甚しおいる人の䞭には、それを真の画期的なテクノロゞヌず芋なしおいる人もいたす。
https://github.com/WebAssembly/design/issues/992#issuecomment-285055578を参照しおください。

emscriptenが発衚されおから9幎埌、wasmの発衚からほが5幎埌、wasmを実行可胜なサヌバヌテクノロゞヌに倉換するこずはほずんど進んでいたせん。

残念ながら、ポヌタブルアプリの暙準が必芁であり、それを実珟する最善の方法は、POSIXスレッドずBerkeley Sockets +自己完結型の安党な仮想ファむルシステムナヌザヌを含むを䜿甚しお小さなカヌネルBSD / Linuxのようなを実装するこずでした。ずグルヌプで十分です。 私はH.Spencerの叀いこずわざに固執したす「UNIXを理解しおいない人はそれを再発明するこずを非難されたす」。

私はただ信仰を保ちたいので、WASIは正しい方向ぞの䞀歩です。

--R

PS2010 emscriptenは、ほずんどの䌁業で䜿甚されおいる、蚀及できない、殺せないブラりザであり、FirefoxずSafariの本䜓が少なくずもそれらの゚ンゞンで浮かんでいる䞍滅のブラりザで動䜜するため、䟝然ずしお揺らいでいたす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡

関連する問題

nikhedonia picture nikhedonia  Â·  7コメント

artem-v-shamsutdinov picture artem-v-shamsutdinov  Â·  6コメント

beriberikix picture beriberikix  Â·  7コメント

JimmyVV picture JimmyVV  Â·  4コメント

frehberg picture frehberg  Â·  6コメント