Seurat4.0系列教程19:多線程并行策略

在Seurat遮晚,我們選擇使用future框架進(jìn)行并行。如果您有興趣了解更多有關(guān)future框架的內(nèi)容响蓉,請點(diǎn)擊此處了解全面而詳細(xì)的描述烁设。

如何在Seurat4.0使用并行

要訪問 Seurat 中的并行函數(shù)版本,您需要加載future包并設(shè)置plan 撬腾。plan將指定如何運(yùn)行該函數(shù)螟蝙。默認(rèn)行為是以非并行方式(按順序)進(jìn)行。為了實(shí)現(xiàn)并行民傻,我們通常建議"多線程"策略胰默。默認(rèn)情況下,這將調(diào)用所有可用的核漓踢,但可以設(shè)置workers參數(shù)以限制同時(shí)活動future的數(shù)量牵署。

library(future)
# check the current active plan
plan()
## sequential:
## - args: function (..., envir = parent.frame())
## - tweaked: FALSE
## - call: NULL
# change the current plan to access parallelization
plan("multiprocess", workers = 4)
plan()
## multiprocess:
## - args: function (..., envir = parent.frame(), workers = 4)
## - tweaked: TRUE
## - call: plan("multiprocess", workers = 4)

seurat的"futurized"功能

以下函數(shù)已被編寫可以利用future 框架,如果設(shè)置適當(dāng)?shù)?code>plan喧半,將進(jìn)行并行奴迅。

例如,要運(yùn)行并行版本挺据,您只需要設(shè)置future 并照常調(diào)用FindMarkers()功能取具。

library(Seurat)
pbmc <- readRDS("../data/pbmc3k_final.rds")

# Enable parallelization
plan("multiprocess", workers = 4)
markers <- FindMarkers(pbmc, ident.1 = "NK", verbose = FALSE)

順序與并行的比較

這里,我們將執(zhí)行一個(gè)簡單的比較扁耐,比較有和沒有并行運(yùn)行的時(shí)間差異暇检。請注意,雖然我們預(yù)計(jì)使用并行策略將減少上述函數(shù)的運(yùn)行時(shí)間婉称,但這種減少的幅度將取決于許多因素(例如數(shù)據(jù)集的大小块仆、線程數(shù)、系統(tǒng)的規(guī)格王暗、future框架等)榨乎。以下基準(zhǔn)是在運(yùn)行 Ubuntu 16.04.5 LTS 的計(jì)算機(jī)上執(zhí)行的,配置是 Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz and 96 GB of RAM

library(ggplot2)
library(cowplot)
ggplot(timing.comparisons, aes(fxn, time)) + geom_bar(aes(fill = strategy), stat = "identity", position = "dodge") + 
    ylab("Time(s)") + xlab("Function") + theme_cowplot()
image

常見問題

  1. 我的進(jìn)度欄去哪里了瘫筐?
    遺憾的是蜜暑,在任何平行模式下運(yùn)行這些函數(shù)時(shí),您將失去進(jìn)度欄策肝。這是由于future框架和 R 中的一些技術(shù)限制造成的肛捍。如果要監(jiān)控函數(shù)進(jìn)度,則需要放棄并行化之众,選擇使用plan("sequential")拙毫。

  2. 如果我不斷看到以下錯(cuò)誤,該怎么辦棺禾?

Error in getGlobalsAndPackages(expr, envir = envir, globals = TRUE) : 
  The total size of the X globals that need to be exported for the future expression ('FUN()') is X GiB. 
  This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). The X largest globals are ... 

對于某些函數(shù)缀蹄,每個(gè)線程需要訪問某些全局變量。如果這些大于默認(rèn)限制,將看到此錯(cuò)誤缺前。要繞過這一點(diǎn)蛀醉,可以設(shè)置 options(future.globals.maxSize = X),X 是字節(jié)中允許的最大值衅码。因此拯刁,要將其設(shè)置為1GB,可運(yùn)行options(future.globals.maxSize = 1000 * 1024^2)逝段。請注意垛玻,這將增加RAM使用量,因此請注意設(shè)置合適的數(shù)字奶躯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帚桩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子嘹黔,更是在濱河造成了極大的恐慌朗儒,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件参淹,死亡現(xiàn)場離奇詭異醉锄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)浙值,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門恳不,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人开呐,你說我怎么就攤上這事烟勋。” “怎么了筐付?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵卵惦,是天一觀的道長。 經(jīng)常有香客問我瓦戚,道長沮尿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任较解,我火速辦了婚禮畜疾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘印衔。我一直安慰自己啡捶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布奸焙。 她就那樣靜靜地躺著瞎暑,像睡著了一般彤敛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上了赌,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天墨榄,我揣著相機(jī)與錄音,去河邊找鬼揍拆。 笑死渠概,一個(gè)胖子當(dāng)著我的面吹牛茶凳,可吹牛的內(nèi)容都是我干的嫂拴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼贮喧,長吁一口氣:“原來是場噩夢啊……” “哼巍膘!你這毒婦竟也來了溜徙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎烁试,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拟烫,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弥鹦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寒跳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聘萨。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖童太,靈堂內(nèi)的尸體忽然破棺而出米辐,到底是詐尸還是另有隱情,我是刑警寧澤书释,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布翘贮,位于F島的核電站,受9級特大地震影響爆惧,放射性物質(zhì)發(fā)生泄漏狸页。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一扯再、第九天 我趴在偏房一處隱蔽的房頂上張望肴捉。 院中可真熱鬧,春花似錦叔收、人聲如沸齿穗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窃页。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脖卖,已是汗流浹背乒省。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留畦木,地道東北人袖扛。 一個(gè)月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像十籍,于是被迫代替她去往敵國和親蛆封。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容