2016-05-30 3 views
-1

Я хочу запустить цикл в параллельных потоках.R для цикла параллельно

Мой набор данных с фондового рынка и имеет вид:
Type ID Token Buy/Sell Price Quantity

Тип является:
N для New Order
M для модификации ордера
X для отмены заказа
T для заказа, который торгуется

ID - это шестнадцатизначный уникальный номер, соответствующий конкретному порядку. Он генерируется, когда приходит New Order. Это необходимо, если заказ составляет Modified, Cancelled или Traded.

Token соответствует различным компаниям на фондовом рынке. Они представляют собой 5-значное число.

A Trade сообщение немного другое. Его вида:
Type BuyOrderID SellOrderID Token Price Quantity

четырех типов заключаются в следующем:

N 1200000000006773 48256 B 13595 4000 
M 1200000000006773 48256 B 13585 4000 
X 1200000000006649 48331 B 70125 500 
T 1200000000009326 1200000000007756 48321 7275 8000 

Теперь я хочу, чтобы разобрать через каждую строку, хранить маркеры в хэш-таблице, и идти с соответствующими действиями.

У меня более миллиарда строк, поэтому мне нужна параллельная обработка для получения более быстрых результатов. Как изменить цикл for (независимо от того, что) использовать параллельную обработку?

Заранее спасибо.

+2

Просьба представить [минимальный воспроизводимым и полный пример] (http://stackoverflow.com/a/5963610/1412059). Вам нужно серьезно исследовать, не можете ли вы избежать цикла R-уровня. Я серьезно сомневаюсь, что только параллелизация (даже с использованием большого количества процессоров) поможет решить проблемы с производительностью. – Roland

ответ

2

Вы можете использовать parallel библиотеку:

library(parallel) 
cores.number <- detectCores() 
cl <- makeCluster(cores.number, type = "FORK") 
clusterSetRNGStream(cl, iseed = seed) 

И затем использовать parLapply, parSapply и т.д., как это:

parSapply(cl, X, function) 

Проверьте документацию пакета: https://stat.ethz.ch/R-manual/R-devel/library/parallel/doc/parallel.pdf

+2

Пакет 'parallel' теперь принадлежит к базовой библиотеке R. При условии, что установленная версия «R» обновлена, самая последняя документация доступна с помощью «vignette (« parallel »,« parallel »)». – RHertel

Смежные вопросы