• 
    

    
    

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

      面向研究生的高性能計(jì)算課程建設(shè)

      2020-07-10 05:52:34孔令波
      計(jì)算機(jī)教育 2020年4期
      關(guān)鍵詞:科學(xué)計(jì)算高性能編程

      孔令波

      (北京交通大學(xué) 軟件學(xué)院,北京 100044)

      0 引言

      在新工科[1]建設(shè)的推動(dòng)下,以學(xué)科交叉和貼近實(shí)際工業(yè)技術(shù)為特點(diǎn)的課程建設(shè),日益得到教育從業(yè)者的認(rèn)可,而隨著大數(shù)據(jù)分析日益受到IT企業(yè)界關(guān)注,相關(guān)概念和技術(shù)的課程也就逐步納入大專院校的必備課程[2-9]。北京交通大學(xué)軟件學(xué)院順應(yīng)此趨勢(shì),更新了研究生的課程,分布式計(jì)算課程便是其一。

      分布式計(jì)算的很多內(nèi)容與冠之以科學(xué)計(jì)算的專題有很緊密的聯(lián)系:它們實(shí)際的計(jì)算都依賴類似的高性能計(jì)算資源。因此,使用高性能計(jì)算來(lái)串接相關(guān)的概念和技術(shù)也更為貼切,這對(duì)于“學(xué)科交叉和貼近實(shí)際工業(yè)技術(shù)”是有益的。

      1 課程內(nèi)容的抓手和課程建設(shè)思路

      在綜合考量高性能計(jì)算和分布式計(jì)算相關(guān)技術(shù)的演變以及當(dāng)下的典型應(yīng)用案例后,可以選取“科學(xué)計(jì)算+大型商務(wù)計(jì)算架構(gòu)”為線索來(lái)串接相關(guān)的專題。

      1.1 抓手:科學(xué)計(jì)算+大型商務(wù)計(jì)算

      自從1929 年《紐約世界報(bào)》首次使用了“超級(jí)計(jì)算(Supercomputing)”這一名詞,高性能計(jì)算一直到現(xiàn)在仍然是一個(gè)國(guó)家綜合國(guó)力的體現(xiàn)之一。按照Top 500 的統(tǒng)計(jì),進(jìn)入21 世紀(jì)以來(lái),主流的(超級(jí))高性能計(jì)算機(jī)的架構(gòu)集中在兩類——MPP (Massively Parallel Processing,大規(guī)模并行處理)和集群(Clustering system),而且后者的數(shù)目比前者越來(lái)越多。

      基于這類高性能計(jì)算資源的應(yīng)用,到如今不僅涵蓋更多的科學(xué)計(jì)算問(wèn)題(如天氣預(yù)報(bào)、生物信息學(xué)、藥品研發(fā)、石油存儲(chǔ)的推演等),而且也體現(xiàn)在大型商務(wù)計(jì)算中(以亞馬遜、阿里巴巴、12306 為代表的公司也需要更為強(qiáng)大的計(jì)算能力)。為此,高性能計(jì)算的內(nèi)容也應(yīng)體現(xiàn)這些特征,以這兩個(gè)應(yīng)用作為線索串接相關(guān)的專題是順理成章的方案。

      本課程所設(shè)專題的架構(gòu)如圖1 所示。頂層展示了兩個(gè)不同領(lǐng)域的應(yīng)用——科學(xué)計(jì)算和大型商務(wù)計(jì)算,雖然它們各自的計(jì)算有很大的不同(圖 1 中間部分),不過(guò),發(fā)展到現(xiàn)在,它們所依賴的計(jì)算資源和技術(shù)支撐都有很大的交叉,即圖 1 的底部?jī)蓪铀沂镜模憾叩挠?jì)算都可以使用如MPI、CUDA 甚或Map/Reduce 的框架;二者所依賴的計(jì)算資源可以是MPP 也可以是集群甚或是現(xiàn)在數(shù)據(jù)中心(Data Center)、云計(jì)算(Clouding)等。這些也是課程專題設(shè)計(jì)的基礎(chǔ)。

      圖1 課程專題結(jié)構(gòu)示意圖

      這種交叉對(duì)于軟件學(xué)院的學(xué)生是非常有益的,這是因?yàn)闀r(shí)代發(fā)展到現(xiàn)在,計(jì)算機(jī)編程已經(jīng)成為許多專業(yè)學(xué)生都要掌握的技巧,甚至其他專業(yè)的學(xué)生使用計(jì)算機(jī)解決問(wèn)題的能力比囿于軟件和計(jì)算機(jī)專業(yè)的學(xué)生更為有競(jìng)爭(zhēng)力:受專業(yè)所限,軟件學(xué)院的學(xué)生想要了解其他專業(yè)的編程門檻很高——那些應(yīng)用背景的數(shù)學(xué)理論和專業(yè)理論就很難;而相對(duì)而言,其他專業(yè)的學(xué)生學(xué)習(xí)計(jì)算機(jī)和軟件的門檻較低。為軟件專業(yè)的學(xué)生介紹科學(xué)計(jì)算的內(nèi)容,幫助他們擴(kuò)展視野是非常有價(jià)值的。

      1.2 課程建設(shè)指導(dǎo)思路:貫通與綜合

      要貫徹前面所述的思路,就需要覆蓋所涉及相關(guān)概念和技術(shù)的重要專題(詳見(jiàn)2.1 的內(nèi)容),這對(duì)于授課老師自然是很大的挑戰(zhàn),不僅要自己深入學(xué)習(xí)和理解那些技術(shù),而且還需要慎重地篩選和編纂適當(dāng)?shù)牟牧弦员隳軌蛳驅(qū)W生深入淺出地展示。

      在實(shí)踐的基礎(chǔ)上,提出“貫通與綜合”的建設(shè)思路,即凡是有益于學(xué)生理解和掌握高性能計(jì)算的專題,都應(yīng)該簡(jiǎn)明扼要地串接起來(lái)。

      (1)貫通的思路主要體現(xiàn)在兩個(gè)方面;一是如前所述,相關(guān)專題使用科學(xué)計(jì)算和大型商務(wù)計(jì)算來(lái)串接;二是課程實(shí)施時(shí)要理論也要落地,即要幫助學(xué)生了解和掌握相關(guān)技術(shù)的理論和歷史演變,也要求學(xué)生動(dòng)手實(shí)踐。

      (2)綜合的思路也主要有兩個(gè)方面;一是在專題和項(xiàng)目的設(shè)計(jì)中不僅要兼顧理論也要兼顧實(shí)際編程和框架的使用;二是作為面向研究生的課程,項(xiàng)目設(shè)計(jì)還要體現(xiàn)研究的要求。

      1.3 教學(xué)方式的選擇:教學(xué)相長(zhǎng)

      為貫徹前面提出的貫通與綜合的課程思路,在教學(xué)方式上實(shí)行了教師和學(xué)生各負(fù)其責(zé)、相互學(xué)習(xí)的形式,即教師負(fù)責(zé)串講與理論和技術(shù)歷史演變的部分;而學(xué)生在接到課程項(xiàng)目的要求后,自由組團(tuán)(每組上限5 人),自主學(xué)習(xí)和了解實(shí)現(xiàn)的技術(shù),并在課上作報(bào)告。

      學(xué)生上講臺(tái)向其他同學(xué)作報(bào)告展示其所完成的項(xiàng)目,不僅有助于學(xué)生自學(xué)能力的鍛煉,而且有助于提升組織內(nèi)容和報(bào)告的能力。此外,同學(xué)間的交流有時(shí)候比教師更能抓住學(xué)生的理解盲點(diǎn):學(xué)生彼此之間的知識(shí)水平相近,某同學(xué)不明白的,極有可能也是其他同學(xué)所不了解的。

      實(shí)踐表明,這樣的安排既因?yàn)橛兴止ざ梢愿采w更多的內(nèi)容,又能實(shí)際鍛煉學(xué)生的學(xué)習(xí)、實(shí)踐和組織報(bào)告的能力。在第一年教師負(fù)責(zé)的串講專題包括了MPI、CUDA 和Map/Reduce 等編程技術(shù),而在第二年中就只是提供了那些技術(shù)的幻燈片,然后布置項(xiàng)目讓學(xué)生自己去學(xué)習(xí)和實(shí)現(xiàn),學(xué)生也很好地完成了。

      2 課程建設(shè)

      2.1 專題設(shè)計(jì)概述

      在確定了課程的指導(dǎo)思路后,接下來(lái)首先需要確定將哪些專題納入本課程。本課程的專題是按照科學(xué)計(jì)算和大型商務(wù)計(jì)算兩個(gè)抓手來(lái)貫穿的,也是教師主要負(fù)責(zé)的部分。

      (1)課程概述。介紹本課程的建設(shè)采取科學(xué)計(jì)算和大型商務(wù)計(jì)算來(lái)串接的設(shè)計(jì)思路,以及課程考核的方式。

      (2)開(kāi)發(fā)技術(shù)簡(jiǎn)介。介紹完成本課程項(xiàng)目可使用的開(kāi)發(fā)技術(shù)。有鑒于Python 在數(shù)據(jù)分析領(lǐng)域被廣泛使用,所以,選取其作為本課程默認(rèn)的開(kāi)發(fā)語(yǔ)言,展示了如何基于Python 實(shí)現(xiàn)MPI、CUDA 和Map/Reduce 的編程流程。不過(guò),也建議學(xué)生選取其他語(yǔ)言如Java 來(lái)實(shí)現(xiàn)相關(guān)的項(xiàng)目。

      (3)科學(xué)計(jì)算導(dǎo)引。以最早的科學(xué)計(jì)算問(wèn)題“天氣預(yù)報(bào)”為例,介紹PDE 建模的方法,以及數(shù)值計(jì)算方式求解的高計(jì)算量,使學(xué)生對(duì)高性能科學(xué)計(jì)算有直觀的認(rèn)識(shí)。

      (4)并發(fā)編程的范式。在提供PDE 方程數(shù)值計(jì)算的串行代碼后,介紹并行程序設(shè)計(jì)的范式(如BSP 模型:Bulk Synchronous Parallel,整體同步并行計(jì)算模型),引導(dǎo)學(xué)生思考如何將串行代碼轉(zhuǎn)換為MPI、CUDA 和Map/Reduce 程序[10-12]——這也是要求學(xué)生實(shí)現(xiàn)的3 個(gè)課程項(xiàng)目。

      (5)高性能計(jì)算機(jī)歷史。

      扼要闡述高性能計(jì)算機(jī)的歷史,并結(jié)合Top 500 網(wǎng)站的信息,揭示當(dāng)前高性能計(jì)算機(jī)的主流架構(gòu)是MPP 和Cluster,并點(diǎn)明基于所謂云計(jì)算平臺(tái)上的編程方式與基于集群的編程方式是相通的。

      (6)運(yùn)行平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)。類比于剖析經(jīng)典軟件(操作系統(tǒng)、編譯器和數(shù)據(jù)庫(kù)管理系統(tǒng))的設(shè)計(jì)與實(shí)現(xiàn)在傳統(tǒng)計(jì)算機(jī)專業(yè)中的地位,了解支撐高性能計(jì)算程序運(yùn)行的平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn),同樣有著重要的價(jià)值。本節(jié)梳理了這方面的內(nèi)容,借鑒操作系統(tǒng)的內(nèi)容設(shè)計(jì),按照資源管理和作業(yè)調(diào)度兩個(gè)線索,以“以點(diǎn)蓋面”的方式介紹了所涉及的概念和算法。

      (7)大數(shù)據(jù)概覽。

      雖然軟件學(xué)院的研究生多少接觸過(guò)大數(shù)據(jù)的技術(shù),不過(guò),本節(jié)的側(cè)重點(diǎn)在于從歷史的、宏觀的角度介紹大數(shù)據(jù)的軟件生態(tài)和典型應(yīng)用,如示意Flume、Kafka、Zookeeper 和Spark 等軟件搭建實(shí)時(shí)日志分析的案例,以幫助學(xué)生有較為完整的了解。

      (8)大型商務(wù)計(jì)算的架構(gòu)演變。以典型電子商務(wù)系統(tǒng)為例(如亞馬遜、京東和阿里巴巴的淘寶等),從架構(gòu)的角度展示這類大型商務(wù)計(jì)算如何應(yīng)對(duì)高并發(fā)的問(wèn)題,涉及CDN (Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))、反向代理、負(fù)載均衡服務(wù)和微服務(wù)等技術(shù),以及部分算法的并發(fā)編程實(shí)現(xiàn)。

      本課程所涉專題以及各專題覆蓋的主要內(nèi)容見(jiàn)表1。雖然內(nèi)容很多,但是,有些是深入講解,而有些是簡(jiǎn)介,讓學(xué)生有了解即可,以便于后續(xù)他們需要的時(shí)候知道有哪些技術(shù)。

      2.2 課程項(xiàng)目設(shè)計(jì)

      為有效提升學(xué)生的動(dòng)手能力、自主學(xué)習(xí)能力以及研究素養(yǎng),本課程設(shè)計(jì)了有針對(duì)性的5 個(gè)項(xiàng)目。

      其中的3 個(gè)編程項(xiàng)目是要求學(xué)生在提供的熱傳導(dǎo)數(shù)值求解的串行程序代碼基礎(chǔ)上,嘗試轉(zhuǎn)換為MPI、CUDA 和Map/Reduce 實(shí)現(xiàn)。

      剩下的兩個(gè)項(xiàng)目分別是技術(shù)報(bào)告和論文研讀報(bào)告項(xiàng)目,前者建議學(xué)生選取有代表性的軟件深入調(diào)研它們的原理、設(shè)計(jì)與實(shí)現(xiàn);后者則要求學(xué)生選取有關(guān)的研究性論文進(jìn)行研讀,并復(fù)現(xiàn)論文的算法。

      表1 課程建設(shè)所設(shè)專題及覆蓋內(nèi)容

      所有這些項(xiàng)目都要求學(xué)生提交文檔和代碼,并做課上報(bào)告和代碼展示。

      兩輪課程實(shí)踐下來(lái),對(duì)于編程項(xiàng)目,最為復(fù)雜的是MPI,CUDA 最為簡(jiǎn)單。但是,處理大規(guī)模數(shù)據(jù)還是得 Map/Reduce 架構(gòu),但是性能堪憂:要重啟作業(yè)。技術(shù)報(bào)告覆蓋了Zookeeper、PIG、Kafka 等軟件,雖然剖析并不很深入,不過(guò)也鍛煉了學(xué)生學(xué)習(xí)、提煉和梳理的能力。論文研讀包括CNN(Convolutional Neural Network,卷積神經(jīng)網(wǎng)絡(luò))在CUDA的實(shí)現(xiàn),PAXOS和Peacock[13]論文等。

      2.3 課程考核

      考核是學(xué)生所關(guān)注的。每個(gè)項(xiàng)目都設(shè)定基本的功能,如果能夠達(dá)成,則占70%(在報(bào)告過(guò)程中會(huì)詳加檢驗(yàn)),浮動(dòng)部分占比可達(dá)20%,具體取決于學(xué)生是否在實(shí)踐中有亮點(diǎn)。最后,提交支撐材料(代碼、幻燈片和文檔)部分占比10%。

      在本課程建設(shè)中,采取了課堂報(bào)告的形式,報(bào)告過(guò)程中鼓勵(lì)學(xué)生相互提問(wèn),并在完善后需要再次報(bào)告,取其最高水準(zhǔn)作為報(bào)告的分?jǐn)?shù)(其他還要看提交的資料的完善程度)。這既體現(xiàn)了相互學(xué)習(xí)、教學(xué)相長(zhǎng),也能夠督促學(xué)生積極深入調(diào)研。所以,總體而言課堂報(bào)告是既輕松也緊張的,不過(guò),總體是比較熱烈的。

      3 結(jié)語(yǔ)

      在高性能計(jì)算課程建設(shè)過(guò)程中,通過(guò)縱覽相關(guān)技術(shù)的演變,以及不同技術(shù)的使用程度[10,12,14]提煉出以“科學(xué)計(jì)算+大型商務(wù)計(jì)算架構(gòu)”為線索串接高性能計(jì)算的概念和技術(shù)。受課時(shí)所限(北京交通大學(xué)軟件學(xué)院對(duì)研究生課程限定是32 學(xué)時(shí)),在課程實(shí)踐教學(xué)中貫徹“教師串講+學(xué)生互助學(xué)習(xí)”的方式,即教師負(fù)責(zé)對(duì)提綱挈領(lǐng)的知識(shí)做專題講授,在闡述項(xiàng)目設(shè)置后,放手讓學(xué)生去自主學(xué)習(xí),最后通過(guò)學(xué)生課堂報(bào)告的方式加以現(xiàn)場(chǎng)檢驗(yàn)。

      到如今,本課程已經(jīng)完成了按照本文思路進(jìn)行的兩輪授課實(shí)踐。學(xué)生的反饋還是令人欣慰的:不僅表現(xiàn)為學(xué)生對(duì)所講授的知識(shí)點(diǎn)能夠有所領(lǐng)悟,而且,他們也很有興趣親手調(diào)試和完成相關(guān)的項(xiàng)目,普遍反映有了將以前所學(xué)知識(shí)融匯貫通并大大擴(kuò)展眼界的感覺(jué)。

      不過(guò),對(duì)于建設(shè)好一門課程而言,這僅僅是開(kāi)始,還需要更為深入的探討和實(shí)踐:①因?yàn)檎n時(shí)的限制(只有32 學(xué)時(shí)),后續(xù)準(zhǔn)備嘗試翻轉(zhuǎn)課堂的教學(xué)方式;②實(shí)驗(yàn)環(huán)境的建設(shè);③教師應(yīng)就學(xué)生選取的專題作深入的提煉;④期待能體現(xiàn)“學(xué)科交叉和貼近實(shí)際工業(yè)技術(shù)”的書(shū)籍。

      猜你喜歡
      科學(xué)計(jì)算高性能編程
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      高中物理科學(xué)計(jì)算工具的設(shè)計(jì)與實(shí)施研究
      玩具世界(2024年2期)2024-05-07 08:15:34
      《計(jì)算機(jī)程序設(shè)計(jì)》課程中科學(xué)計(jì)算思維能力的培養(yǎng)
      一款高性能BGO探測(cè)器的研發(fā)
      電子制作(2017年19期)2017-02-02 07:08:49
      高性能砼在橋梁中的應(yīng)用
      SATA推出全新高性能噴槍SATAjet 5000 B
      高性能可變進(jìn)氣岐管降低二氧化碳排放
      汽車零部件(2014年8期)2014-12-28 02:03:03
      天镇县| 正阳县| 海宁市| 郧西县| 垫江县| 亚东县| 安丘市| 兴仁县| 崇明县| 五河县| 保靖县| 崇明县| 武强县| 普兰县| 泊头市| 富川| 武汉市| 吴堡县| 金溪县| 台东市| 得荣县| 磴口县| 海宁市| 嘉善县| 客服| 秭归县| 揭东县| 乌恰县| 黎川县| 磐安县| 布拖县| 五家渠市| 长岛县| 镇康县| 乌兰察布市| 红桥区| 三江| 连云港市| 大竹县| 冷水江市| 新闻|