1. fujitayy

    No comment

    fujitayy
Changes in tags
Changes in body
Source | HTML | Preview
@@ -17,10 +17,12 @@
他の言語とかであったりするループの各イテレーションを並列化できるライブラリと同じような事が出来るライブラリです。
ただしループ処理ではなくイテレーターを並列化します。
## rayonでコードを書いてみましょう
+### map
+
たとえば配列の値に応じたフィボナッチ数のうち最大の物をナイーブに求める場合はこんな感じになります。
~~~~rust
use rand::prelude::*;
use rayon::prelude::*;
@@ -60,10 +62,12 @@
~~~~
rayonを用いた方が5倍くらい速いですが、これは実行した環境が5コアのVMだからでしょう。
rayonは論理CPUコア数と同じ数のスレッドを用いて処理しますので、このコードの様に1イテレーションの処理が重くて他の処理に依存していない場合はいい感じにスケールします。
+### collect
+
処理結果を`collect`メソッドで`Vec`にする事もできます。
~~~~rust
use rayon::prelude::*;
@@ -82,10 +86,12 @@
ys: [1, 4, 9, 16, 25]
~~~~
お手軽ですね。
+### par_sort
+
`par_sort`メソッドを使うとソートが出来るのでやってみましょう。
~~~~rust
use rand::prelude::*;
use rayon::prelude::*;