2016-12-08 1 views
0

私は研究プロジェクトのために大規模なシミュレーションを行っています.1000のサッカーシーズンをシミュレートし、結果を分析します。季節が複数のノードに分散するため、後でアクセスするために出力データをファイルに保存する簡単な方法が必要です。ノードが終了するタイミングを制御することはできないので、同じファイルに同時に書き込むことはできませんが、すべてが別のファイルに保存される場合、すべてのノードを集約する必要があります。データは後で容易になる。思考?大きなシミュレーションの出力をRに保存するにはどうすればよいですか? (複数のノード、安全なアクセス)

+0

を結合するために、以下を使用することができますが、複数の物理マシンを意味するのですか? –

+0

良い質問です。スーパーコンピュータには、24個のプロセッサを搭載した多数のマシンがあります。私は1つのマシンでシミュレーションをやろうとしているのか、それとも多くのマシンで行うのかはわかりません。 – jntrcs

+0

@jntrcsすべてのノードがアクセスできる共有記憶域はありますか?その場合は、適切なフォルダ構造を決定し、個々のシミュレーションの結果を1つのドライブ上の対応するフォルダに保存することができます。このシナリオでは、以下に投稿したコードが機能します。 – Gandalf

答えて

0

この質問が既に尋ねられたかどうかわかりません。しかしここに私の研究で何をしているのですか?あなたは、ファイル名をループしそう

のように1つのオブジェクトにそれらを集約
require(data.table) 
dt1 <- data.table() 
for (i in 1:100) { 
    k <- paste0("C:/chunkruns/dat",i,"/dt.RData") 
    load(k) 
    dt1 <- rbind(dt1,dt) 
} 

agg.data <- dt1 
rm(dt1) 

上記のコードは、すべてのファイルを別のフォルダに同じファイル名で保存されていることを前提とすることができます。

さもないと、あなたはパターンに一致するファイルパスを識別して、「ノード」と彼らに

require(data.table) 
# Get the list of files and then read the files using read.csv command 
k <- list.files(path = "W:/chunkruns/dat", pattern = "Output*", all.files = FALSE, full.names = TRUE, recursive = TRUE) 
m <- lapply(k, FUN = function (x) read.csv(x,skip=11,header = T)) 
agg.data <- rbindlist(m) 
rm(m) 
関連する問題