0

UNIX(クラスター)とWindows(Intel Core Duo、2Gb RAM)で同じコードを実行しています。実行時間に大きな違いがあることがわかります。UNIXでは1つのコアのみを使用していることがわかりますが、Windowsでは2つのコアを使用している可能性があります(わかりません)。私の懸念は次のとおりです。

Windows:
   user  system elapsed
207.12 8.82  472.04
Unix
 user  system elapsed
327.765 2.493 330.819

私が理解していないこと、なぜWindowsのCPU処理時間と経過時間に大きな違いがあるのか​​。コードをセグメントに分割しましたが、これは部分(I / O)の読み取りと書き込みでのみ発生します。残りの計算は、UNIXに比べて非常に高速で、「ユーザー」時間と「経過時間」に違いはありません。

user  system elapsed
48.765 0.00 52.69

私は特別なことは何もしていませんが、300MBの非常に大きなファイルを読んでいます

indata <- read.csv(mutFile, sep="\t", header = TRUE)

この違いを回避して全体的なパフォーマンスを向上させるにはどうすればよいですか?

4

2 に答える 2

2

300MBは「非常に大きい」とはほど遠いです。特に「メモリ使用量」のセクションread.csvのアドバイスに従うことで、速度を上げることができます。?read.csvこれにより、両方のシステムの実行時間が大幅に短縮されます。

システム間の違いについては、Unixボックスの方がHDDやRAMの方が速いのではないかと思います。

于 2012-10-01T20:46:22.323 に答える
0

データセットの読み取りで高いパフォーマンスを得るには、ソリッドステートドライブ(SSD)を購入することをお勧めします。ただし、他のハードウェア(主にSATAコントローラー)がボトルネックになっている可能性があります。また、SSDはGb/ユニットマネーの点で安くはありません。一般に、パフォーマンスの違いは、ハードウェアの違い(「通常の」ハードドライブとラップトップハードドライブ)によって説明できます。解決策は、より高速なマシンにお金を使うことです。または、@ JoshuaUlrichが言ったように、テキストファイルの読み取りを最適化して、現在のハードウェアで優れたパフォーマンスを向上させるために時間を費やしてください。

于 2012-10-01T20:54:36.607 に答える