資源描述:
《python多核并行計(jì)算在海量星表交叉證認(rèn)中的應(yīng)用》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、中國(guó)科學(xué):物理學(xué)力學(xué)天文學(xué)2011年第41卷第1期:102~107《中國(guó)科學(xué)》雜志社SCIENTIASINICAPhys,Mech&Astronwww.scichina.comphys.scichina.comSCIENCECHINAPRESS論文Python多核并行計(jì)算在海量星表交叉證認(rèn)中的應(yīng)用**裴彤,張彥霞,彭南博,趙永恒中國(guó)科學(xué)院國(guó)家天文臺(tái),北京100012*E-mail:ptptptptptpt@163.com;zyx@lamost.org收稿日期:2009-12-23;接受日期:2010-02-0
2、1國(guó)家自然科學(xué)基金(批準(zhǔn)號(hào):10778724,10778616,11033001)和國(guó)家高技術(shù)研究發(fā)展計(jì)劃(編號(hào):2006AA01A120)資助項(xiàng)目摘要天文學(xué)研究中經(jīng)常需要通過交叉證認(rèn)將來自多波段多項(xiàng)目天文數(shù)據(jù)聯(lián)系起來統(tǒng)一考慮.當(dāng)前天文數(shù)據(jù)急劇增長(zhǎng),必然導(dǎo)致交叉證認(rèn)的速度過慢.針對(duì)這一問題,提出一種在多核環(huán)境下使用Python語言進(jìn)行高效并行計(jì)算的方法,與以往的研究結(jié)果相比,速度提高了若干倍.這為下一步的多波段數(shù)據(jù)統(tǒng)計(jì)研究和數(shù)據(jù)挖掘打下了良好的基礎(chǔ).關(guān)鍵詞天文星表,巡天,數(shù)據(jù)庫(kù),交叉證認(rèn),并行計(jì)算,Pytho
3、nPACS:95.75.-z,95.75.Pq,95.80.+p天文學(xué)中的交叉證認(rèn)是指將來自不同星表的源,Terabyte、甚至Petabyte來計(jì)量.面對(duì)如此規(guī)模龐大根據(jù)其某些屬性(如:位置、星名、星等等信息)的相的數(shù)據(jù)集,交叉證認(rèn)遇到了前所未有的困難.內(nèi)存容關(guān)性,相互聯(lián)系起來.通過交叉證認(rèn),可以將同一目量不夠、證認(rèn)計(jì)算量過大等問題都凸顯出來.過去常標(biāo)源在多個(gè)星表中的觀測(cè)信息融合在一起,從而加用的工具(如Vizier,Simbad,Topcat和Aladin等)不再[1,2][1,2]深對(duì)該天體的認(rèn)識(shí).如果
4、是來自不同波段的數(shù)據(jù),交適用.為實(shí)現(xiàn)海量星表交叉證認(rèn),高丹等人在叉證認(rèn)后可以獲得天體的多波段信息,促進(jìn)新天體總結(jié)國(guó)內(nèi)外研究狀況的基礎(chǔ)上,研究比較了多級(jí)三或新現(xiàn)象發(fā)現(xiàn)的機(jī)會(huì),也為進(jìn)一步的多波段數(shù)據(jù)統(tǒng)角劃分法(HierarchicalTriangularMesh,簡(jiǎn)稱HTM,計(jì)分析和數(shù)據(jù)挖掘打下基礎(chǔ).天體多波段交叉證認(rèn)主頁:http://www.skyserver.org/HTM/)和多級(jí)等面積是LAMOST科學(xué)目標(biāo)的三大核心子課題之一,也是同緯度劃分法(HierarchicalEqualAreaisoLatit
5、ude虛擬天文臺(tái)數(shù)據(jù)融合的必由之路,有重要的現(xiàn)實(shí)意Pixelisation,簡(jiǎn)稱HEALPix,主頁:http://healpix.jpl.義和科學(xué)價(jià)值.nasa.gov/),于2008年6月提出“基于HTM索引分區(qū)近年來,隨著科技的進(jìn)步,無論地面的還是空間與kd-tree找最近鄰算法的交叉證認(rèn)”方法,并開發(fā)出的天文觀測(cè)設(shè)備都在不斷增加、改進(jìn)和升級(jí),觀測(cè)能相應(yīng)的交叉證認(rèn)工具用于實(shí)際工作,收到了很好的力越來越強(qiáng),獲得的數(shù)據(jù)量也越來越大.尤其是巡天效果.其優(yōu)點(diǎn)是:(ⅰ)通過HTM索引將大星表分成星表,很多都已達(dá)到
6、億行以上.在未來幾年內(nèi)出現(xiàn)千多個(gè)小表分別證認(rèn),解決了內(nèi)存限制問題,降低了計(jì)億、萬億行的星表是極有可能的.天文數(shù)據(jù)正以算量;(ⅱ)證認(rèn)時(shí)利用kd-tree找最近鄰,提高了速度.引用格式:裴彤,張彥霞,彭南博,等.Python多核并行計(jì)算在海量星表交叉證認(rèn)中的應(yīng)用.中國(guó)科學(xué):物理學(xué)力學(xué)天文學(xué),2011,41:102~107,doi:10.1360/132009-1163中國(guó)科學(xué):物理學(xué)力學(xué)天文學(xué)2011年第41卷第1期同時(shí)也存在以下不足:(ⅰ)程序完全采用Java語言3分割星表數(shù)據(jù)編寫,性能受限;(ⅱ)程序流程有
7、待進(jìn)一步優(yōu)化;HTM是一種多層次的、遞歸的球面分割方法,(ⅲ)不支持并行計(jì)算.本文在高丹等人[1,2]的工作基礎(chǔ)上,選用Python可將天球分成多級(jí)三角網(wǎng)格,每個(gè)網(wǎng)格都有一個(gè)編號(hào),稱為pcode.利用HTM可以將一個(gè)大星表從邏輯和C語言改寫了交叉證認(rèn)程序,采用HTM劃分方法上分割為多個(gè)小星表,具體做法如下:分割星表數(shù)據(jù),并利用Python的subprocess模塊發(fā)起對(duì)天球進(jìn)行N級(jí)HTM劃分.將星表存入數(shù)據(jù)庫(kù),多個(gè)子進(jìn)程來實(shí)現(xiàn)并行計(jì)算,在獲得較高靈活性的轉(zhuǎn)化為一個(gè)數(shù)據(jù)庫(kù)表,每條表記錄對(duì)應(yīng)星表中一個(gè)同時(shí),大幅提
8、升了程序性能.源,每個(gè)表字段對(duì)應(yīng)星表的一個(gè)屬性列.入庫(kù)時(shí),給星表增添一個(gè)名為pcode_htmN的屬性列(具體到數(shù)1編程語言的選擇據(jù)庫(kù)則是增加一個(gè)表字段),對(duì)于星表中任一源,Python(http://www.python.org/)是一種面向?qū)ο髉code_htmN屬性的值為該源在天球上所處的N級(jí)的、解釋型的程序設(shè)計(jì)語言,開源、免費(fèi),語法簡(jiǎn)明,HTM網(wǎng)格的pcode.這樣,就可以根據(jù)pcode_h