亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        編程語言Julia并行計算實現(xiàn)模式探討

        2020-07-04 02:14:28龐雙玉蘇翔宇
        電腦知識與技術(shù) 2020年14期
        關(guān)鍵詞:任務(wù)

        龐雙玉 蘇翔宇

        摘要:Julia編程語言是美國麻省理工學(xué)院MIT正式發(fā)布的面向科學(xué)計算的高性能編程語言。Julia集合c的速度,Matlab數(shù)學(xué)處理特征,Python的通用編程特性與Shen的命令行處理。Julia通過協(xié)程和遠(yuǎn)程宏調(diào)用機(jī)制實現(xiàn)了并行計算,是第一個編程語言級別上實現(xiàn)并行處理的模式的語言。本文探討Julia并行計算實現(xiàn)模式并與hadoop集群分布式系統(tǒng)進(jìn)行對比,討論其各自的優(yōu)劣。

        關(guān)鍵詞:Julia;協(xié)程;任務(wù);并行處理;hadoop集群

        中圖分類號:G424 文獻(xiàn)標(biāo)識碼:A

        文章編號:1009-3044(2020)14-0242-02

        1引言

        JuliaJulia是一個面向科學(xué)計算的高性能動態(tài)高級程序設(shè)計語言.Julia是一種高級通用動態(tài)編程語言,它最初是為了滿足高性能數(shù)值分析和計算科學(xué)的需要而設(shè)計的,不需要編譯器,速度快,也可用于客戶端和服務(wù)器的Web用途.Julia從一開始就為高性能而設(shè)計。Julia程序可通過LLVM編譯為多個平臺的高效本機(jī)代碼。它具有如下特性。

        (1)動態(tài)

        Julia是動態(tài)類型的,感覺就像是一種腳本語言,并且對交互使用具有良好的支持。

        (2)可選輸入

        Julia具有豐富的描述性數(shù)據(jù)類型語言,并且類型聲明可用于闡明和鞏固程序。

        一般Julia使用多重調(diào)度作為范例,使表達(dá)許多面向?qū)ο蠛凸δ苄跃幊棠J阶兊萌菀?。它提供異步I/O,調(diào)試,日志記錄,性能分析,程序包管理器等。

        (3)易于使用

        Julia具有高級語法,因此對于任何背景或經(jīng)驗水平的程序員來說,它都是一種可訪問的語言。瀏覽Julia的微基準(zhǔn)測試,以了解該語言。

        (4)開源的

        Julia是根據(jù)MIT許可提供的,所有人免費使用。所有源代碼都可以在GitHub上公開查看。

        2Julia并行處理模式

        并行和并發(fā)是討論編程語言多任務(wù)處理時,經(jīng)常提及的。并行和并發(fā)是兩個不同的概念。

        并發(fā)指的是計算處理單元同時對多個進(jìn)程或者線程進(jìn)行響應(yīng)。并發(fā)處理時,多個進(jìn)程或者線程共享計算單元。多個進(jìn)程或者線程之間,依靠同步機(jī)制來協(xié)調(diào)。其中一個進(jìn)程或者線程占用計算單元時,另一個必須等待。類似于信道復(fù)用,對用戶來說,是同時執(zhí)行的。

        并行指的是多個任務(wù)同時運行,是多個任務(wù)同時運行在多個計算單元上,是真正的多任務(wù)同時執(zhí)行。兩者之間的區(qū)別,如下圖所示。并發(fā)處理,多個任務(wù)共占計算單元。

        并行處理多個任務(wù)同時在多個計算單元上運行。

        Julia提供了一個基于消息傳遞的多重處理環(huán)境,允許程序在獨立的內(nèi)存域內(nèi)同時控制并發(fā)多任務(wù)執(zhí)行。這個內(nèi)存空間由每個CPU單獨控制,他們之間通過內(nèi)部消息機(jī)制來通信。Julia的消息機(jī)制不同于MPI,并不是收發(fā),而是類似于函數(shù)調(diào)用的機(jī)制。

        并行程序的兩個基礎(chǔ)是遠(yuǎn)程引用(Remote Reference)和遠(yuǎn)程調(diào)用(Remote Call)遠(yuǎn)程引用是引用其他特定處理器的對象,這個引用可被其他任何處理器訪問。遠(yuǎn)程調(diào)用是指的是一個處理進(jìn)程,發(fā)起請求,用于以一定參數(shù)調(diào)用其他處理進(jìn)程(或許是自身)中某個許可的函數(shù)。

        Julia將進(jìn)程稱為worker,遠(yuǎn)程調(diào)用通過本地進(jìn)程在遠(yuǎn)程worker中啟動某一處理過程。比如啟動一個函數(shù)。遠(yuǎn)程調(diào)用在啟動以后,并不阻塞等待,而是執(zhí)行遠(yuǎn)程調(diào)用后面的代碼,遠(yuǎn)程調(diào)用啟動以后返回一個Remote Reference r對象,遠(yuǎn)程調(diào)用結(jié)果,還需要用fetch0語句來獲取。

        Julia也提供了宏@spawnat,該宏實現(xiàn)了remotecall遠(yuǎn)程調(diào)用的功能,@spawnat有兩個參數(shù),@spawnat pid表達(dá)式,其中pid指明運行處理任務(wù)的worker id,表達(dá)式指明對遠(yuǎn)端worker運行處理任務(wù)后返回的結(jié)果要進(jìn)行的計算。

        3Julia并行計算實例

        以一個在遠(yuǎn)端處理器創(chuàng)建并返回矩陣的實例,演示Julia遠(yuǎn)程調(diào)用過程。

        julia>using Distributed//使用分布式系統(tǒng)

        iulia>addprocs(4)//添加4個worker

        Julia>r=remotecau(2,rand,2,2)//發(fā)起遠(yuǎn)程調(diào)用,調(diào)用遠(yuǎn)程worker創(chuàng)建一個隨機(jī)矩陣

        其中第一個參數(shù)2是遠(yuǎn)端worker id第二個參數(shù)rand是在遠(yuǎn)程work上啟動的函數(shù)。

        第三和第四個參數(shù)都是2,是傳遞給rand函數(shù)的參數(shù),指明創(chuàng)建一個2x2的隨機(jī)矩陣。

        RemoteRef(2,1,5)//生成RenoteRef對象

        其中第一個參數(shù)2是遠(yuǎn)端worker id第二個參數(shù)1發(fā)起遠(yuǎn)程調(diào)用的worker id第三個參數(shù)是為當(dāng)前RemoteRef分配的id.

        Julia>fetch(r)//捕獲RemoteRef對象

        生成的2x2隨機(jī)矩陣

        2x2Float64Array:

        4julia與分布式大數(shù)據(jù)hadoop平臺的比較

        Julia從編程語言級別實現(xiàn)了并行計算,而分布式大數(shù)據(jù)平臺也實現(xiàn)了并行計算,現(xiàn)在從性能和響應(yīng)時間等以下幾個方面把二者進(jìn)行比較。

        (1)二者實現(xiàn)基礎(chǔ)是不一樣的,hadoop構(gòu)建了一個獨立的分布式系統(tǒng),julia是通過SSH方式無密碼登陸遠(yuǎn)程特定的機(jī)器,并啟動機(jī)器上的Julia工作進(jìn)程。

        (2)Hadoop有自己的文件系統(tǒng)HDFS,并行處理過程同時依賴于HDFS,從結(jié)構(gòu)上分為Namenode和DateNode節(jié)點,iulia并行計算中,每個機(jī)器的地位是平等的,進(jìn)程級別之間的消息通信,不涉及文件系統(tǒng)。

        (3)Hadoop善于數(shù)據(jù)分分析任務(wù),Julia善于數(shù)據(jù)處理和計算任務(wù)。

        5結(jié)論

        Julia在編程級別上實現(xiàn)了多核并行計算處理,從而能夠進(jìn)行大規(guī)模數(shù)據(jù)集上的科學(xué)計算,這是fortran語言所無法實現(xiàn)的,Julia這種并行模式也為構(gòu)建基于Julia的并行分布式環(huán)境打下了基礎(chǔ)。在軟件級別上實現(xiàn)并行分布式環(huán)境會成為一種趨勢。

        [通聯(lián)編輯:聞翔軍]

        猜你喜歡
        任務(wù)
        論建設(shè)工程項目信息管理
        小學(xué)英語“任務(wù)型”教學(xué)模式的探究
        活化英語課堂教學(xué)“三步驟”探微
        關(guān)于中職電工電子實訓(xùn)教學(xué)的初步探索
        考試周刊(2016年21期)2016-12-16 11:51:59
        從預(yù)習(xí)著手,構(gòu)建高效的英語寫作課堂
        考試周刊(2016年21期)2016-12-16 10:44:16
        丟棄“正確的廢話”
        任務(wù)型教學(xué)模式應(yīng)用于會計英語詞匯教學(xué)的有效性研究
        淺談任務(wù)型教學(xué)在高中英語語法教學(xué)中的應(yīng)用
        明確“任務(wù)” 文中有“我”
        當(dāng)代教育工作者的任務(wù)——教會學(xué)生做人
        制服丝袜人妻中文字幕在线| 男性av天堂一区二区| 国精产品一区一区三区| 亚洲综合精品伊人久久| 亚洲精品综合第一国产综合| 三级黄色片一区二区三区| 国产一区二区三区我不卡| 国产成人精品a视频| 免费一区二区三区久久| 亚洲午夜无码久久久久软件| 日本不卡视频一区二区| 国精品人妻无码一区免费视频电影| 国产精品美女久久久浪潮av| www.av在线.com| 伊人久久大香线蕉av不变影院| 免费人成年激情视频在线观看| 国产精品午睡沙发系列| 淫妇日韩中文字幕在线| 国产成人av一区二区三区无码 | 国产女主播强伦视频网站| 六月婷婷亚洲性色av蜜桃| 成人午夜视频精品一区| 四虎影视亚洲精品| 蜜桃在线观看视频在线观看| 国产精品亚洲第一区二区三区| 国产精选污视频在线观看| 在线观看一区二区女同| 亚洲成熟中老妇女视频| 亚洲av成人片在线观看| 无码人妻一区二区三区免费n鬼沢| 国产内射视频在线播放| 久久综合九色综合97婷婷| 成人免费无码大片a毛片软件 | 无码三级国产三级在线电影| 人妻中文字幕日韩av| 亚洲色精品aⅴ一区区三区| 中文字幕人妻中文| 亚洲人成精品久久熟女| 欧美精品videosex极品| 高清国产日韩欧美| 久久精品女人天堂av麻|