• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      并行與分布式計算課程建設(shè)的現(xiàn)狀與思考

      2020-04-04 06:36:38劉喜平
      計算機教育 2020年2期
      關(guān)鍵詞:分布式計算體系結(jié)構(gòu)程序設(shè)計

      劉喜平

      (江西財經(jīng)大學(xué) 信息管理學(xué)院,江西 南昌 330013)

      0 引言

      隨著芯片集成度的不斷提高,芯片的功耗、復(fù)雜性也越來越高,使得傳統(tǒng)的通過提高主頻、增加結(jié)構(gòu)的復(fù)雜度來提升性能的途徑已經(jīng)難以為繼。在此背景下,從2005 年起,大部分主流的CPU 制造商開始通過增加核心的數(shù)量快速提升微處理器的性能[1]。時至今日,多核處理器已經(jīng)成為主流,單處理器計算環(huán)境逐漸退出歷史舞臺。從應(yīng)用的角度看,過去幾十年里,借助不斷提升的計算能力,人類在許多領(lǐng)域(如基因解碼、醫(yī)療成像、人工智能、虛擬現(xiàn)實等)發(fā)展非常迅速,但隨著人類科學(xué)探索的不斷深入,許多應(yīng)用對計算能力的要求也越來越高,問題的規(guī)模也在不斷增加,迫切需要將大量處理器和計算機集合起來共同完成計算任務(wù)。來自需求與現(xiàn)實兩方面的動力推動了計算向并行與分布式計算方向轉(zhuǎn)變。并行計算一直以來都是大規(guī)??茖W(xué)與工程計算、數(shù)據(jù)分析的基礎(chǔ)工具。近年來,隨著現(xiàn)代計算機普遍采用多核異構(gòu)的體系結(jié)構(gòu),以及互聯(lián)網(wǎng)、大數(shù)據(jù)、云計算、人工智能的興起,并行計算的應(yīng)用領(lǐng)域不斷擴大。

      1 并行與分布式計算課程建設(shè)現(xiàn)狀

      鑒于其日益重要的地位,并行與分布式計算被納入計算機專業(yè)本科課程體系中。在美國計算機協(xié)會ACM 和國際電子電氣工程師協(xié)會計算機學(xué)會IEEE-CS 制定的《計算機專業(yè)(本科)課程設(shè)置指南之CS2013》[2]中,并行與分布式計算是計算機專業(yè)知識體系的18 個知識域之一,是一個全新的知識域;并行與分布式計算類課程的等級也由原來的選修課程提升為核心基礎(chǔ)課程。在教育部計算機科學(xué)與技術(shù)專業(yè)教學(xué)指導(dǎo)分委員會系統(tǒng)研究組給出的課程體系改革方案中,并行計算也是一個很重要的方向[3]。

      目前國內(nèi)外很多知名大學(xué)的計算機專業(yè)已經(jīng)開始開設(shè)多門并行與分布式計算相關(guān)課程[4-6],如國外的康奈爾大學(xué)、哥倫比亞大學(xué)、萊斯大學(xué)、麻省理工學(xué)院、哈佛大學(xué)、斯坦福大學(xué)等著名大學(xué)開設(shè)了分布式計算導(dǎo)論、分布式計算原理、并行與分布式計算、并行編程、并行計算機體系結(jié)構(gòu)等課程;在國內(nèi),很多大學(xué)也在作出調(diào)整,如浙江大學(xué)開設(shè)了多核計算、網(wǎng)格計算和分布式系統(tǒng)、并行計算機體系結(jié)構(gòu)和編程;北京大學(xué)開設(shè)了多核編程;華中科技大學(xué)開設(shè)了并行與串行數(shù)據(jù)結(jié)構(gòu)與算法、并行體系結(jié)構(gòu)、并行編程原理與實踐等;南京大學(xué)、中山大學(xué)、四川大學(xué)、天津大學(xué)等也開設(shè)了并行處理相關(guān)課程。

      分析現(xiàn)有的并行與分布式計算課程,其結(jié)構(gòu)內(nèi)容如圖1 所示。可以看出,并行與分布式計算涉及的內(nèi)容比較龐雜,涉及算法、系統(tǒng)、開發(fā)等多個方面的內(nèi)容。有的學(xué)校將每個部分單獨開設(shè)課程,有的學(xué)校將某幾個部分整合在一起,并沒有統(tǒng)一的做法。

      圖1 并行與分布式計算課程知識結(jié)構(gòu)

      2 并行與分布式計算課程的思考

      2.1 并行與分布式計算與能力培養(yǎng)

      教育部計算機科學(xué)與技術(shù)專業(yè)教學(xué)指導(dǎo)分委員會在新的教學(xué)指導(dǎo)綱領(lǐng)性文件中指出,計算機類本科生應(yīng)具備四大專業(yè)基本能力:計算思維能力、算法設(shè)計與分析能力、程序設(shè)計與實現(xiàn)能力、系統(tǒng)能力[3]。每一個能力的培養(yǎng)都可以在多個知識域中體現(xiàn),每一個知識域都對多個方面的能力培養(yǎng)有貢獻。并行與分布式計算中各個知識塊的內(nèi)容與這4 個方面的能力緊密相連,它們之間的對應(yīng)關(guān)系如圖2 所示。并行與分布式計算的重要性日益提高,對各個能力的培養(yǎng)提出了新的要求。

      圖2 并行與分布式計算知識內(nèi)容與四大專業(yè)基本能力的對應(yīng)關(guān)系

      (1)計算思維能力。傳統(tǒng)的計算機課程在講述求解問題的思路時,主要以串行執(zhí)行為背景,沒有將并行計算考慮進來。實際上,很多問題在求解的時候如果將并行計算作為一個選項,那么求解思路就會完全不同。計算的本質(zhì)是求解問題,其中有些適合串行求解,有些天然地適合并行求解。比如,在一個數(shù)據(jù)序列中求最值,按照串行計算的思路是按順序逐個比較,每一步均保留大的,最后得到最大數(shù),這需要線性級別的時間復(fù)雜度。在并行環(huán)境下,可以并行地進行比較,最后找出最大數(shù),其時間復(fù)雜度可以縮小到對數(shù)級。在培養(yǎng)計算思維的時候,應(yīng)當(dāng)同時涵蓋串行與并行計算思維,才不至于思維與現(xiàn)實脫節(jié)[4]。

      (2)算法設(shè)計與分析能力。傳統(tǒng)模式下講授數(shù)據(jù)結(jié)構(gòu)和算法的時候,一個基本的假設(shè)是所設(shè)計的數(shù)據(jù)結(jié)構(gòu)只是給一個進程來訪問,但是在并行計算模式下,多個進程或者線程可能同時訪問一個數(shù)據(jù)結(jié)構(gòu),因此數(shù)據(jù)結(jié)構(gòu)的設(shè)計需要保證并發(fā)訪問的正確性。例如,在為多線程環(huán)境下設(shè)計鏈表結(jié)構(gòu)的時候,就需要考慮到對鏈表的操作可能會導(dǎo)致問題,因此,可以設(shè)計帶有鎖的阻塞并發(fā)隊列,也可以設(shè)計不帶鎖的非阻塞并發(fā)隊列,但是后者需要基于特殊的指令。再比如,排序是一個非常常見的問題,在串行計算模式下出現(xiàn)了很多經(jīng)典算法,如冒泡排序、快速排序等,但是這些算法并不能簡單地移植到并行計算環(huán)境下。一個常見的并行排序算法是奇偶交換排序,它將排序過程分為奇交換和偶交換兩個階段。對于奇交換來說,它總是比較奇數(shù)索引以及其相鄰的后續(xù)元素,而偶交換總是比較偶數(shù)索引和其相鄰的后續(xù)元素,其中的比較和交換可以充分并行化。

      (3)程序設(shè)計與實現(xiàn)能力。傳統(tǒng)的程序設(shè)計教學(xué)都是圍繞編寫串行程序而展開的,對于并行和分布式程序的開發(fā)涉及比較少。多線程編程、MPI、OpenMP 等編程的模式和工具可以讓程序員更加方便地利用并行計算資源,應(yīng)該作為程序設(shè)計能力培養(yǎng)的重點之一。SOA 體系結(jié)構(gòu)、Web Service 等架構(gòu)和模式是編寫現(xiàn)代Web 環(huán)境下分布式應(yīng)用的主流架構(gòu),在計算機系本科生的工程能力培養(yǎng)中具有重要地位?;贛apReduce、Spark 等分布式計算框架的程序設(shè)計可以重復(fù)利用現(xiàn)有的分布式計算的生態(tài)系統(tǒng),大幅降低大規(guī)模數(shù)據(jù)處理的門檻,是大數(shù)據(jù)時代的必備技能。

      (4)系統(tǒng)能力。目前支持并行計算的計算機系統(tǒng)眾多,如多核、眾核、集群、大規(guī)模并行計算機等。理解并行計算機和分布式計算機體系結(jié)構(gòu),對于提高系統(tǒng)能力具有非常重要的作用。應(yīng)用開發(fā)人員必須對計算機系統(tǒng)具有全面的認(rèn)識,了解不同系統(tǒng)平臺的底層結(jié)構(gòu)。各種并行計算機系統(tǒng)的出現(xiàn)對于系統(tǒng)能力的培養(yǎng)提出了更高層次的要求。

      2.2 并行與分布式計算課程開設(shè)方向

      并行與分布式計算課程的內(nèi)容比較雜,而不同高校的培養(yǎng)目標(biāo)不同,特色不同,完全可以根據(jù)自己的特點有選擇性地開設(shè)相關(guān)課程,可以從以下幾個方向來開設(shè)相關(guān)專業(yè)課程,如圖3 所示。

      圖3 并行與分布式計算課程方向

      (1)并行與分布式程序設(shè)計。這一方向主要教授在各種平臺下的程序設(shè)計開發(fā),涵蓋并行算法、多核與異構(gòu)架構(gòu)編程、分布式應(yīng)用開發(fā)技術(shù)和大數(shù)據(jù)處理技術(shù),主要內(nèi)容是介紹并行計算機系統(tǒng)、多核和異構(gòu)計算平臺、分布式環(huán)境,以及基于分布式計算框架的大數(shù)據(jù)環(huán)境等各個計算環(huán)境下的算法和程序設(shè)計。

      (2)并行計算。這一方向系統(tǒng)地介紹并行計算系統(tǒng)及其算法,涵蓋并行計算機系統(tǒng)和并行算法兩大內(nèi)容。

      (3)計算機系統(tǒng)。這一方向主要圍繞并行計算機系統(tǒng)、云計算、多核與異構(gòu)編程等介紹計算機系統(tǒng)的高級主題。

      (4)分布式計算。這一方向系統(tǒng)地介紹分布式計算的原理和技術(shù),主要涵蓋分布式系統(tǒng)原理、分布式應(yīng)用開發(fā)技術(shù)、大數(shù)據(jù)處理技術(shù)等技術(shù)。

      2.3 并行與分布式計算課程開設(shè)方案

      并行與分布式計算是一個知識域,并不需要對應(yīng)于一個課程。如何將該知識域中的知識單元融入課程中,即如何開設(shè)課程,不同的學(xué)校有不同的做法[7]。現(xiàn)有的做法可以總結(jié)如下。

      (1)方案之一(+1 方案)。其他課程內(nèi)容不作調(diào)整,另外專門開設(shè)一門并行與分布式計算課程。這種方案的優(yōu)點是容易實現(xiàn),不需要對教學(xué)方案作出大的調(diào)整,但是由于并行與分布式計算知識域內(nèi)容非常豐富,要把它們濃縮到一門課程中是不容易的。如果一定要開設(shè)這門課程,其內(nèi)容需要經(jīng)過精心取舍,既能激發(fā)學(xué)生的興趣,又能體現(xiàn)并行與分布式計算的精髓。

      (2)方案之二(+0.n 方案)。不專門開設(shè)并行與分布式計算課程,而是將該知識域的內(nèi)容分散到幾門相關(guān)的課程中,如在操作系統(tǒng)課程中介紹分布式文件系統(tǒng),在計算機體系結(jié)構(gòu)中介紹并行計算機和分布式系統(tǒng)體系結(jié)構(gòu),在算法課程中介紹并行算法,在開發(fā)類課程中介紹SOA、組件技術(shù)、Web 服務(wù)等分布式開發(fā)技術(shù),在大數(shù)據(jù)技術(shù)課程中介紹MapReduce 等分布式計算框架。這種方案無需對現(xiàn)有的培養(yǎng)計劃和課程設(shè)置方案作任何調(diào)整,但是效果難以保證。這是因為一方面各個課程中不一定有足夠的課時來講授相關(guān)知識點;另一方面并行與分布式計算的相關(guān)知識分散在各處,學(xué)生的理解不夠深入,主要還是以傳統(tǒng)的思維為主;三是知識點實際是割裂的,不利于理解掌握形成整體知識結(jié)構(gòu)。

      (3)方案之三(+m 方案)。專門開設(shè)若干新的課程講述并行與分布式相關(guān)的內(nèi)容,如并行程序設(shè)計、分布式計算、大數(shù)據(jù)處理技術(shù)等。這種方案相對來說考慮比較周全,將并行與分布式計算的知識融合到幾門課程中,但是由于課時總量是固定的,因此需要優(yōu)化課程結(jié)構(gòu),調(diào)整其他課程的比重,因而牽涉面較大。

      (4)方案之四(+m.n 方案)。這種方案一方面開設(shè)若干門新課,另一方面在已有課程中增加知識點,雙管齊下融入相關(guān)知識點。例如,在計算機導(dǎo)論課中,可以介紹并行思維,讓學(xué)生對于并行計算有直觀的認(rèn)識;在操作系統(tǒng)課程中,可以介紹多線程編程;在軟件工程課程中,可以講授SOA 和Web Services 等架構(gòu)。再如,可以單獨開設(shè)一門課程講述現(xiàn)有分布式系統(tǒng)、分布式計算框架和云計算框架下的開發(fā),從而使學(xué)生對于分布式系統(tǒng)和云計算有更為深入的理解。這種方案也需要對現(xiàn)有的課程結(jié)構(gòu)進行調(diào)整。

      在這4 種方案中,前面2 種方案不需要對課程體系作出大的變動,相對較容易實現(xiàn),但是知識的融合較難實現(xiàn);后面2 種方案有較多空間來展開,特別是第4 種方案,充分考慮了并行與分布式計算與其他課程之間的融合,也考慮了課程自身的體系,但是需要對課程體系作出較大的調(diào)整。

      2.4 并行與分布式計算實踐課開設(shè)方案

      并行與分布式計算中涉及大量的概念和原理,理論上的介紹比較枯燥,不容易激發(fā)學(xué)生的興趣,為此,很多高校開設(shè)并行與分布式計算的實驗課,或者設(shè)置實踐課時[5,8]。實踐項目的設(shè)置可以考慮以下方向。

      (1)算法與程序設(shè)計。程序設(shè)計比較容易激起學(xué)生的興趣,讓學(xué)生有成就感,為此,可以通過程序設(shè)計實踐加深學(xué)生對并行與分布式計算的理解。在程序設(shè)計實踐中,可以通過共享內(nèi)存編程、分布式內(nèi)存編程、基于分布式計算框架MapReduce 和Spark 的編程、云計算框架的編程等編程模式的對比,讓學(xué)生體會到串行程序設(shè)計與并行程序設(shè)計的區(qū)別、數(shù)據(jù)密集型和計算密集型計算的區(qū)別以及計算向數(shù)據(jù)靠攏和數(shù)據(jù)向計算靠攏理念上的區(qū)別。

      (2)大數(shù)據(jù)處理。大數(shù)據(jù)是計算機科學(xué)的一個熱門發(fā)展方向,而大數(shù)據(jù)技術(shù)天生就是基于分布式技術(shù)的,以大數(shù)據(jù)技術(shù)為抓手可以較好地將分布式計算技術(shù)與大數(shù)據(jù)處理的實踐結(jié)合起來,兩個方面相得益彰。具體來說,可以講授GFS、HDFS 等分布式數(shù)據(jù)存儲,批處理式的MapReduce、面向流式計算的Storm、基于內(nèi)存計算的Spark、批流結(jié)合的Flink 等分布式計算框架,分布式緩存、分布式隊列等分布式基礎(chǔ)設(shè)施,以及Hive、HBase 等分布式數(shù)據(jù)庫和數(shù)據(jù)倉庫。

      (3)系統(tǒng)開發(fā)。并行系統(tǒng)和分布式系統(tǒng)的原理較為抽象,可以設(shè)置一些系統(tǒng)開發(fā)方面的實踐課以加深理解。例如,基于GFS 的思想開發(fā)一個分布式文件系統(tǒng)、基于Bigtable 的思想實現(xiàn)分布式數(shù)據(jù)庫、基于P2P 原理實現(xiàn)分布式文件共享系統(tǒng)、分布式消息隊列的實現(xiàn)等。

      (4)應(yīng)用開發(fā)。著重通過SOA 架構(gòu)、Web Services、微服務(wù)等架構(gòu),體會分布式應(yīng)用的特點,理解分布式應(yīng)用中如何屏蔽底層平臺和服務(wù)的差異,如何將不同地理位置分布的服務(wù)集成起來,遠(yuǎn)程對象如何交互等。

      3 結(jié)語

      并行與分布式計算是一個新的計算范式,從串行計算到并行計算是大勢所趨。本文回顧了并行與分布式計算這一知識域的課程開設(shè)現(xiàn)狀和內(nèi)容,并思考了該知識域與能力培養(yǎng)、課程設(shè)置和實踐課程設(shè)置方面的問題。目前在實際的教學(xué)設(shè)置中還存在一些問題,如重概念、輕實踐,與其他課程結(jié)合不夠緊密等,需要更多的探索和實踐。

      猜你喜歡
      分布式計算體系結(jié)構(gòu)程序設(shè)計
      基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
      計算機教育(2020年5期)2020-07-24 08:52:56
      從細(xì)節(jié)入手,談PLC程序設(shè)計技巧
      電子制作(2019年9期)2019-05-30 09:42:04
      基于云計算的移動學(xué)習(xí)平臺設(shè)計與實現(xiàn)
      高職高專院校C語言程序設(shè)計教學(xué)改革探索
      云計算中MapReduce分布式并行處理框架的研究與搭建
      基于粒計算的武器裝備體系結(jié)構(gòu)超網(wǎng)絡(luò)模型
      作戰(zhàn)體系結(jié)構(gòu)穩(wěn)定性突變分析
      面向異構(gòu)分布式計算環(huán)境的并行任務(wù)調(diào)度優(yōu)化方法
      基于DODAF的裝備體系結(jié)構(gòu)設(shè)計
      基于云計算的航天器控制系統(tǒng)自組織體系結(jié)構(gòu)
      清徐县| 微博| 依兰县| 大关县| 怀仁县| 太康县| 沁阳市| 五指山市| 惠东县| 富源县| 太湖县| 越西县| 宜州市| 理塘县| 曲阜市| 和田县| 西乌| 津南区| 滦平县| 德保县| 始兴县| 蕉岭县| 义马市| 嘉祥县| 东丽区| 肃宁县| 泗阳县| 怀安县| 靖宇县| 富民县| 盐亭县| 昭觉县| 齐齐哈尔市| 乐陵市| 武川县| 花莲县| 安岳县| 郴州市| 汉沽区| 洮南市| 洞头县|