F# の並列ソート アルゴリズムで最も一般的な方法の 1 つは、まず処理するデータを複数の部分に分割し、次に異なるスレッド (CPU) で処理することです。すべてのスレッドが処理を完了すると、結果が集められ、独立したスレッドでマージされて最終結果が形成されます。分割する場合、各スレッドが独自の独立したデータのみにアクセスし、グローバル データや他のスレッドのデータ (ここでのデータは読み取り専用ではないデータを指します) にアクセスしないようにします。結果をマージする場合は、効率的なアルゴリズムを使用してマージする必要があります。 ソートアルゴリズムには、マージソートアルゴリズムがあります。まず、多方向マージソートアルゴリズムを記述し、ソートする配列をCPUの数に分割し、各CPUに各部分をソートさせ、すべてのスレッドがソートを完了したら、それらをまとめて独立したスレッドでマージソートを実行します。 もう一度コードを説明します。F# に馴染みのない方もいるかもしれません。 1. マージ アルゴリズムの考え方は、各スコア グループの最小の添字から始めて、複数のソート済み配列を 1 つの大きなソート済み配列にマージすることです。最小のものを大きな配列に入れ、次にこの配列の添字を 1 つ増やしてから再度比較し、最小のものを大きな配列に入れ、すべての小さな配列の添字が末尾を指すまでこれを繰り返します。一時変数 min が使用されるため、 mutable キーワードで変更されます。 2. F# 配列の長さは、Array.length メソッドを使用して取得されます。変数と配列の代入記号は、= ではなく <- です。= は C# の == に相当します。F# には、continue や break などのキーワードはありません。 3. async キーワードは新しい並列プリミティブです。これによって展開されたコードは、f# によってスレッド プール内で自動的に非同期実行されます。結果を返す場合は、let! キーワードと return! キーワードを使用する必要があります。ソートは配列に対してのみ実行され、何も返さないため、ここでは比較的単純です。 4. (fun ab -> a - b) はラムダ式であり、自動的にComparerに変換できます。 5. Array.map は、配列内の各要素にメソッドを適用することを意味します。この時点では実行されませんが、パイプラインを介して Async.Parallel メソッドに渡されます。Async.Parallel メソッドは、非同期実行配列 Async<'a array> を返し、最後に Async.Run を使用して、Async.Parallel によって返された結果を実際に実行します。 6. |> はパイプラインを意味し、前の関数の結果が次の関数で使用されることを意味します。このように、1 つのステートメントで非常に一貫したロジックを表現できます。 F# 並列ソート アルゴリズムの全体的なコードは次のとおりです。 1 #ライト 私の IBM X200 では、シリアル ソートには約 1200 秒、パラレル ソートには約 900 秒かかります。 F# 並列ソートアルゴリズム関連リンク: シンプルな F# 式から並行アプリケーションを構築する マイクロソフト Visual Studio 2010 に F# が正式に追加される http://developer..com/art/200812/103775.htm この記事は、 Prince Frogのブログ記事「 Frog の推奨事項: F# が並列ソート アルゴリズムを実装」から引用したものです。 |
1. 背景近年、Transformer、Large-kernel CNN、MLP に基づく 3 つの...
複雑な AI モデルを学習するには膨大な量のデータが必要であり、ヘルスケア データは全データのほぼ ...
[51CTO.com クイック翻訳] 最高情報責任者 (CIO) と IT リーダーは、人工知能の実...
この記事では、隠し表現の視覚化を使用して、ニューラル ネットワークのトレーニング プロセスをより直感...
まず、ディープラーニングとはすべてのディープラーニングアルゴリズムの総称であり、CNNは画像処理分野...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
1. メタ学習1. パーソナライズモデリングの問題点推奨シナリオでは、データの 80% 分布の問題に...
ChatGPTは一夜にしてまた進化し、OpenAIは一気に大量のアップデートをリリースしました!コ...
工業情報化部科学技術庁は、感染予防・抑制に努め、感染拡大を阻止するために、「人工知能の力を十分に発揮...
[[201075]]ユーザー ポートレートの概念は非常に人気があります。多くの企業が「ユーザー ポー...
機械学習技術の発展により、企業内のさまざまな構造化コンテンツや非構造化コンテンツから、より多くの情報...
[[228895]] AI は囲碁のゲームを変え、今度はポスターのデザインを変えています。アリババ...
AI時代の到来非常にドラマチックなのは、Microsoft Build 開発者会議と Google...