Я новичок в программировании R и хотел бы знать, как работать параллельно plot
на 12 объектов trellis сделано с lattice
пакетом.R: Как распределить многострочный график с решеткой в R 3.2.1?
В принципе, после того, как много шагов предварительной обработки, у меня есть следующие команды:
plot(adhd_plot, split = c(1,1,4,3)) #plot adhd trellis object at 1,1 in a grid of 4 by 3 i.e 4 COLUMNS x 3 ROWS
plot(bpd_plot, split = c(2,1,4,3), newpage = F) #plot bpd trellis object in 2nd Column in a grid of 4colx3row
plot(bmi_plot, split = c(3,1,4,3), newpage = F)
plot(dbp_plot, split = c(4,1,4,3), newpage = F)
plot(height_plot, split = c(1,2,4,3), newpage = F)
plot(hdl_plot, split = c(2,2,4,3), newpage = F)
plot(ldl_plot, split = c(3,2,4,3), newpage = F)
plot(ra_plot, split = c(4,2,4,3), newpage = F)
plot(sbp_plot, split = c(1,3,4,3), newpage = F)
plot(scz_plot, split = c(2,3,4,3), newpage = F)
plot(tc_plot, split = c(3,3,4,3), newpage = F)
plot(tg_plot, split = c(4,3,4,3), newpage = F)
Проблема в том, что в то время как эти команды работают, они принимают очень долго (> 4 часа) на Mac OSX для получения такой цифры, как:
Поскольку мой Mac имеет 8 ядер, мне показалось, что я должен попытаться разделить команду графика на разные ядра, чтобы ускорить построение графика.
После поиска по другим вопросам распараллеливания, я нашел doParallel
пакет и думал, что я мог бы потенциально реализовать функцию parLapply
в нем, как выглядит следующим образом:
library(doParallel)
detectCores()
cl <- makeCluster(6) #6 out of 8 cores
registerdoParallel(cl)
parLapply(cl, list_of_all_trellis_objects, plot)
Однако, я не знаю, как использовать параметр split
в приведенной выше команде parLapply
для размещения участков в разных местах сетки.
Мне обязательно нужны 12 участков, размещенных отдельно и не накладываемых друг на друга, так как это сделать?
Благодарим вас за рассмотрение моего запроса, и я с нетерпением жду ваших намеков и решений.
Я не думаю, что вы можете график на одно и то же устройство параллельно. Если затяжка занимает слишком много времени, вы, вероятно, рисуете большое количество точек на этих графиках (больше, чем их можно отличить). Подумайте, как этого избежать. – Roland
@Roland Hei и спасибо за ваш комментарий. Ты прав. У меня есть данные GWAS (исследования в области генома), из которых 12, поэтому они довольно большие, и все данные (значения p) должны быть построены на графиках QQ (Quantile-Quantile) ... не могут действительно избежать что. 12 объектов решетки вместе имеют объединенный размер ~ 650 МБ. – Neal
Я бы бросил вызов, что вам нужно построить все точки. Построение каждой 10-й точки графика qq, вероятно, даст примерно такую же картину. – Roland