Поэтому я использую пакет R doParallel для распараллеливания некоторых шагов моего скрипта, когда мне нужно обрабатывать большой список элементов, чтобы вычислить его быстрее. С этого времени все функции, которые я использовал до сих пор, отлично работали с foreach (): мне просто нужно было указать количество ядер с помощью registerDoParallel (), и все!
Недавно я попытался использовать разные статистические тесты в R, используя var.test () и t.test (), и я не понимаю, почему, но я понял, что при использовании в foreach () он не работает ... Итак, чтобы быть больше ясно, что я в основном делаю, это перебираю строки из двух матриц одинаковых размеров: каждая строка в каждой матрице содержит 5 числовых значений, и я, например, делаю:
var.test(matrixA[1,],matrixB[1,])$p.value
для извлечения для строки номер 1 соответствующего значения p из теста Фишера, сделанного для 10 числовых значений (2 группы по 5 значений в строке номер 1 каждой матрицы). Проблема в том, что в моих матрицах миллионы строк, поэтому мне приходится перебирать количество строк, и я делаю это с помощью функции foreach ():
p.values.res<-foreach(i=seq(dim(matrixA)[1])) %dopar%
var.test(matrixA[i,],matrixB[i,])$p.value
(Здесь я установил registerDoParallel (cores = 6) до foreach ()). Я пробовал разные тесты: тест Фишера и тест студента (t.test ()), и, к сожалению, ни один из них не работал на моих 6 ядрах, только одно.
Я также пробовал с "cl": registerDoParallel (cl = 4) Это тоже не работает.
Я попытался перезапустить R, выйти и снова открыть сеанс, перезагрузить компьютер: не работает.
Кто-нибудь знает, почему не работает и как это исправить?
Моя конфигурация: Linux Mint 18.2 Cinnamon 64-бит (3.4.6); Процессор Intel Core I7-6700; R версия 3.4.3 (30.11.2017); RStudio версии 1.1.383 2009-2017.
вот 2 коротких примера матриц
МатрицаA:
0.7111111 0.7719298 0.7027027 0.6875000 0.6857143
0.8292683 0.6904762 0.8222222 0.8333333 0.6250000
0.8846154 0.5714286 0.8928571 0.8846154 0.9259259
0.9000000 0.5000000 0.9500000 0.8666667 0.8260870
0.8235294 0.3684211 0.9411765 0.8333333 0.8000000
0.5714286 0.2142857 0.6666667 0.5000000 0.5555556
МатрицаB:
0.5227273 0.7142857 0.7808219 0.6346154 0.7362637
0.9166667 0.7173913 0.8611111 0.7391304 0.7538462
0.8666667 0.6052632 0.8260870 0.7333333 0.9024390
0.9285714 0.5806452 0.8750000 0.6956522 0.8787879
0.8333333 0.5517241 0.8333333 0.6818182 0.8750000
0.7500000 0.2941176 0.6666667 0.4444444 0.7500000
Заранее всем спасибо за помощь. С уважением,