• 沒有找到結果。

中 華 大 學 碩 士 論 文

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學 碩 士 論 文"

Copied!
57
0
0

加載中.... (立即查看全文)

全文

(1)

中 華 大 學 碩 士 論 文

以多核心技術重建所有具相同特性之化合物 Inferring a Chemical Compound from Path Frequency

Using Multi-Core Technology

系 所 別:資訊管理學系碩士班 學號姓名:M09610017 張義諺 指導教授:游 坤 明 博 士

中華民國 九十九 年 七 月

(2)

i

摘要

藥物分子設計的方法是尋找藥物的設計使用的計算工具,當設計一個新的藥 物,其藥物的分子結構可能是由相似的化合物分類所建構出來。目前已成功地將

Kernel methods 應用於化合物的分類,其中最常見的為支持向量機(Support Vector Machine,SVM)。為了分類化合物的特性,如頻率標記路徑方法,已經能將化 合物的特性導為特徵向量。而在前人的研究中,分析計算出化合物的路徑頻率

(Path frequency),並重建出具有相同路徑頻率但分子結構不同的化合物,但重 建出的結果只有一個,並沒有其他相似的化合物可以進行比較分析,對於進一步 的研究發展而言助益不大。

本論文針對單一結果進行擴展,嚐詴重建出所有具相同路徑頻率但分子結構 不同的化合物,但由於重建出所有化合物相較於只重建出一個化合物所花費的時 間會多上許多,且會隨著化合物的大小越大而大幅提升,重建出的所有的化合物 也會有重複性的問題。因此我們提出了一個基於多核心處理技術上的演算法來解 決重建出所有化合物所需花費的大量計算時間的問題,以平行運算的方式將大量 的計算工作進行切割與處理,以達到縮短整體計算時間的目標,並且將每一個重 建出的化合物標記出唯一的表示式,以達到去除多餘的重複化合物的目的。

關鍵字:化合物、特徵空間、多核心處理、Branch-and-Bound、OpenMP

(3)

ii

ABSTRACT

Drug design is the approach of finding drugs by design using computational tools. When designing a new drug, the structure of the drug molecule can be modeled by classification of potential chemical compounds. Kernel Methods have been successfully used in classifying chemical compounds, within which the most popular one is Support Vector Machine (SVM). In order to classify the characteristics of chemical compounds, methods such as frequency of labeled paths have been proposed to map compounds into feature vectors. In this study, we analyze the path frequencies computed from chemical compounds, and reconstruct all possible compounds that share the same path frequency with the original ones, but differ in their molecular structures. Since the computing time for reconstructing such compounds increase greatly along with the size increase of the compounds, we propose an efficient algorithm based on multi-core processing technology. We report here that our algorithm can infer chemical compounds from path frequency while effectively reduce computation time and obtained high speed up.

Keywords: Chemical compound, feature space, Multi-Core Processing, OpenMP,

Branch-and-Bound

(4)

iii

致謝

首先要感謝我的指導教授游坤明博士在研究所的這段期間內不斷地教導我 們,除了在論文研究上有所困難或疑問時,能快速地找到我們的問題點並給予適 當的建議與幫助,平時也會關心我們的生活作息,不希望我們太過勞累。在碩士 求學的過程中所參與的研究計劃,都讓我提升了思考能力與表達能力,也讓我學 習到溝通與合作的重要性,這些都是踏入職場前的最佳訓練。難以言喻之恩情,

將永銘於心。

在研究所這段期間,特別感謝博士班學長周嘉奕,對於研究上的疑問,總是 不厭其煩的提供協助,在此獻上最深的感謝。感謝中華資管教授們的培育,授予 我們專業的知識,無論是對於研究或將來就業都有相當大的幫助。感謝學長姐、

同學以及學弟妹們,在研究所生活中一路的陪伴,因為有你們,使我的研究所生 活更加多彩,也留下許多美好回憶。有幸相遇、相知與相惜。

最後僅以本文獻給我最敬愛的父母與家人,感謝你們的生育、養育與教育之 恩,父母對總是在背後默默地給予我最大的支持與鼓勵。感謝我的二哥以自己的 經驗在這段期間給予我諸多建議,我將銘記於心,在此致上最誠摯的感激。

張義諺 謹致 中華大學資訊管理學系碩士班 中華民國九十九年七月

(5)

iv

目錄

摘要... i

ABSTRACT ... ii

致謝... iii

第一章 緒論 ... 1

1.1 研究背景與動機... 1

1.2 研究目的... 4

1.3 論文架構... 5

第二章 背景知識 ... 7

2.1 SMILES ... 7

2.2 平行運算... 9

2.2.1 MPI ... 10

2.2.2 OpenMP ... 11

第三章 相關研究 ... 13

3.1 問題定義... 13

3.2 路徑頻率 (Path frequency) ... 14

3.3 BB-CIPF 演算法 ... 17

(6)

v

第四章 MC-CIPF 演算法之設計 ... 21

4.1 MC-CIPF 概觀... 21

4.2 建置工作與處理... 21

4.3 平衡與重複問題... 27

4.4 MC-CIPF 虛擬碼... 29

第五章 實驗結果 ... 33

5.1 實驗環境... 33

5.2 實驗結果... 33

第六章 結論 ... 45

6.1 結論... 45

6.2 未來研究方向... 46

參考文獻... 47

(7)

vi

圖目錄

圖 1.1 經翻轉後為相同的化合物... 3

圖 2.1 水分子結構... 7

圖 2.2 乙醇結構... 8

圖 2.3 平行運算概念... 9

圖 2.4 分散式記憶體架構... 11

圖 2.5 共享式記憶體架構... 12

圖 3.1 從特徵空間中演化成圖形... 13

圖 3.2 範例化合物 G(乙醇) ... 16

圖 3.3 BB-CIPF ... 19

圖 3.4 原子與價數之間的規則[18] ... 20

圖 4.1 工作建立階段流程圖... 23

圖 4.2 出現於目標化合物中的候選化合物... 24

圖 4.3 沒有出現於目標化合物中的候選化合物... 24

圖 4.4 工作建置範例... 25

圖 4.5 執行工作流程圖... 26

圖 4.6 存取佇列... 28

圖 4.7 相同的結果... 28

(8)

vii

圖 4.8 SMILES 表示式處理流程 ... 29

圖 5.1 化合物 C00097 所花費的計算時間 ... 36

圖 5.2 化合物 C00097 的效能提升率 ... 36

圖 5.3 化合物 C00497 所花費的計算時間 ... 38

圖 5.4 化合物 C00497 的效能提升率 ... 38

圖 5.5 化合物 C11109 所花費的計算時間 ... 39

圖 5.6 化合物 C11109 的效能提升率 ... 40

圖 5.7 化合物 C14601 所花費的計算時間 ... 41

圖 5.8 化合物 C14601 的效能提升率 ... 41

圖 5.9 化合物 C15987 所花費的計算時間 ... 43

圖 5.10 化合物 C15987 的效能提升率 ... 43

(9)

viii

表目錄

表 3.1 K 值與路徑頻率的關係 ... 15

表 3.2 範例化合物路徑頻率... 16

表 3.3 路徑頻率限制比較... 17

表 5.1 硬體與軟體規格... 33

表 5.2 實驗化合物詳細資料... 34

表 5.3 化合物 C00097 詳細數據 ... 35

表 5.4 化合物 C00497 詳細數據 ... 37

表 5.5 化合物 C11109 詳細數據 ... 39

表 5.6 化合物 C14601 詳細數據 ... 40

表 5.7 化合物 C15987 詳細數據 ... 42

(10)

1

第一章 緒論

1.1 研究背景與動機

針對於藥物的開發設計所遭遇到的問題,近年來已經有許多的學者投入於以 計算的方式來解決其問題。藥物的開發設計上的研究,在分子生物學上是一項相 當重要的議題。由於現行研究人員在開發新的藥物或化合物時,需要持續不斷地 進行測詴,是一項需要花費大量人力與時間的工作。

然而現今研究人員除了致力於研發新的化合物之外,也針對於現有的化合物 進行研究改良,詴圖降低其副作用而努力。

因此要設計新的化合物或者是改良現有,對化合物的種類、特性做適當的分 類是相當重要的。目前已經有不少的研究使用 Kernel Methods 來對於化合物的 分子結構進行分類 [3, 8, 12, 14],其中最著名的方法是支持向量機(Support

Vector Machine,SVM) [7]。SVM 是一種分類(Classification)演算法,由 V. Vapnik 等人[2, 6, 19]根據統計學習理論提出的一種機器學習方法,它廣泛的應用於統計 分類以及回歸分析中。因此利用 SVM 可以達到藥物種類、特性的分類,分類後 的結果能夠做更進一步的運用。

在 kernel methods 中,一組物件(或資料)在目標問題被對應到某一空間內,

這稱為一個特徵空間(feature space)。當一個物件被視為某一類別,則會被定義成 一個在特徵空間內的特徵向量 (feature vector)。假設給定某一個已經對應在特徵

(11)

2

空間中的 y 點,透過一個適當的函式∅,將 y 從特徵空間中對應回一個物件,這 個動作稱為 pre-image [1]。問題在於若在特徵空間中給定一個 y 點,要如何將 y 還原成 x 物件,例如 y=∅(x)。同時 x 也有可能不存在。

於[16, 17]中,學者針對於 pre-image 的問題進行研究。於[16]中的結果顯示,

可將已標記的頂點路徑(vertex-labeled paths)演化輸出成圖形,若給予適當的限 制,如有限制分支度的生成樹(spanning tree)以及固定長路的路徑,可以於多 項式時間(polynomial time)內解決 pre-image 的問題,反之,若無限制,則會 成為一個 NP-hard 的問題。於[17]中更進一步地證實了,若不給予固定長度的路 徑,則圖形演化依然是一個 NP-hard 的問題。因此學者於[18]中,進一步地設計 了基於 branch-and-bound 類型的演算法(BB-CIPF)來解決化合物 pre-image 的 問題,分別針對原子數介於 20 至 50 個之間的化合物(含氫)進行實驗,成功地 於數秒或數十秒內演化成樹狀結構(tree-like)。

但化合物的複雜程度會影響到處理的時間。舉例來說,若某一化合物共有

20 個原子,分別由 4 個碳、5 個氧、2 個氮、9 個氫等四種不同的原子所組成,

在不考慮其他情況下,單以排列組合而言,就超過了 10 億種組合的方式,換言 之,當某一化合物之分子結構愈簡單,則所需花費在計算組合上的時間將會越短;

反之當某一化合物之分子結構愈複雜時,則將需花費更多的時間在計算組合上。

然而當化合物越大,結構越複雜時,在眾多的可能性組合當中,也存在著重複性 的問題,舉例來說,如圖 1.1 所示,圖中的化合物(C2H7NO),若在三維的空間

(12)

3

中,經翻轉後,圖中的兩個化合物是相同的。然而在平面的空間中,如何辨識兩 者是否為相同,減少重複的組合也是其中一項問題。因此要針對於每一個演化的 結果進行標記,若隨後演化結果的標記與先前的一樣,就可以將其省略,以達到 減少重複性的問題。SMILES[4] 是常見的一種線性標記方法,以簡單明確的規 則將化合物進行標記,每一個化合物能確保有唯一性,且具高可讀性,是一種常 見的化合物線性標記方法。

圖 1.1 經翻轉後為相同的化合物

於[18]中的結果,成功地將演化時間縮短至數十秒內,原因在於當成功地演 化出一個結果後即會停止。若化合物的大小越大時,結果可能不只一個,若從每 個化合物演化後都只有一個結果,沒有更多相類似的結果可以進行比較或分析,

可能對於進一步的研究幫助不大。但若要找出所有的可能組合,花費的時間可能 就不會這麼短,且當化合物越趨於複雜,花費的時間將會大幅提升。在尋找出所 有組合的同時,還需要對於已重複的結果進行篩選,這會是一個相當龐大且花費 時間的工作。對於大量的工作,常見的解決方法即將工作進行分割且同時進行,

來縮短整體時間。

個人電腦在近年幾來,硬體設備的技術上大幅提升,由 IBM 於 2001 年所推

C

O C

N

C

C O

N

(13)

4

出的 eServer p690[23],其中所搭載的 POWER 4 是第一顆採用雙核心設計的中央 處理器(Central Processing Unit,CPU)隨之 Sun 與 HP 也分別跟進,紛紛推出 自家的雙核心處理器,並用於自家的高階伺服器中。而過去 PC 剛從 16 位元

8088/80286 的單工時代進入到 32 位元 80386 的多工(Multitask)時代時。2005 年是 x86 處理器正式進入雙核時代的一年,隨後 Intel 與 AMD 於一般 PC 市場中 推出了雙核心、多核心設計的處理器,加速了多核心處理器於一般市場的普及 率。

如今,研發新技術的腳步不會停歇,我們希望能夠有效地運用目前現有的多 核心處理的優勢,將大量的工作進行切割,讓不同的核心同時去進行作業。因此 我們提出了 MC-CIPF 演算法,即是運用多核心的處理技術來將大量的工作進行 切割,同時執行作業,能夠有效地減少大量的運算時間,同時也能進一步的找出 所有符合同一特徵向量的化合物,達到更進一步的研究與應用。

1.2 研究目的

於化合物之特徵向量演化為圖形的問題在前人的努力研究下,已普出相關的 雛型與方向,結合 brand-and-bound 的概念能夠省去大部份的運算,並且於短時 間內得到結果。雖然減少了大部份的運算時間,但演化出的結果只有一個,無其 他相似結果可進行比對分析,對於進一步的研究發展幫助不大。但若要尋找出所 有的可能性組合,花費的時間將會大幅的提升,且重複性的問題是不可乎視的,

(14)

5

過多的重複結果對於進一步的研究發展,必然成為一定的負擔。

本論文以 BB-CIPF 演算法作為基礎,改進了 BB-CIPF 中只有尋找出一個結 果而對進一步研究發展助益不大的問題,將尋找出所有具備相同特性但分子結構 不同的化合物。但若演化出所有可能性結果,於運算上所花費的時間勢必將大幅 提升,且演化出的所有可能結果中,也會有結果重複的問題。

因此本論文所提出的 MC-CIPF 演算法結合了多核心平行運算技術,以平行 化的方式將問題進行切割及處理,以目標化合物為基礎,建立不同初始狀態的化 合物,分別由不同的核心進行演化處理,以達到演化出所有與目標化合物具相同 特徵向量之化合物及減少運算時間的目的。並且於演化的過程中藉由 SMILES 的概念,將符合目標化合物特徵向量的結果進行篩選,以解決重複性結果的問 題。

1.3 論文架構

本論文之章節順序安排如下:第二章介紹跟本論文相關的各項研究與技術,

包含了 SMILES 以及平行化的工具。SMILES 是用於解決多重解的問題,將重複 的結果進行篩選,並且於此章節介紹常見的平行化工具;第三章為相關研究,包 含問題的定義,針對本論文所要解決的問題,化合物特性的分類方式以及前人在 相關領域之研究;第四章則詳細解說本論文中所提出之演算法,其中包括工作的 建置、分配以及執行,並且包含虛擬碼;第五章為實驗部分,主要內容包含了經

(15)

6

由平行處理前、後之效能比較。第六章總結本論文,闡述我們的研究結果與貢獻,

並探討未來可能的發展方向。

(16)

7

第二章 背景知識

本章節主要針對與本論文相關的研究與技術進行探討,了解研究的方向與方 法。

2.1 SMILES

SMILES[4](Simplified molecular input line entry specification,SMILES)是 一種以 ASCII 符號來明確地描述化合物中分子結構的方式。在 SMILES 中證明 了每一個化學分子只有一個 SMILES 表示式,以下是 SMILES 的基本標記規 則,大致可列出以下幾點:

I. 乎略氫原子:如圖 2.1 的水(H2O)的 SMILES 表示式為「O」;圖 2.2 的乙醇則是「CCO」。

圖 2.1 水分子結構

H

C

H

(17)

8

圖 2.2 乙醇結構

II. 價數(valance)表示方式:單鍵用「-」,但通常會省略;雙鍵以「=」

表示,如二氧化碳為「O=C=O」;三鍵以「#」表示,如氰化氫為「C#N」; 四鍵以「:」表示。

III. 環的處理:若結構中有環,則需將環拆開,於斷開點用數字標記。例如 C1CCCCC1。

IV. 分枝處理:若遇上分枝時,則以括號來表示分枝內容。例如丙酸的 SMILES 表示式為「CCC(=O)O」。

V. 芳環(ring)中的 C、O、S、N 需以小寫的 c、o、s、n 表示

在進行排列組合過程中,會產生許多重複的化合物,透過 SMILES 取得化 合物的唯一表示式來消除不必要的重複解。

H

O C

H C

H

H H

H

(18)

9

2.2 平行運算

平行運算在我們日常生活中其實是很常見的,例如我們會同時做兩件事,甚 至三件事以上,一邊看書一邊聽音樂,或者在廚房一邊炒菜一邊正在煮湯等。

為何需要平行運算?主要有兩大特點:(1)資料傳輸量不大,(2)程式需要 大量的浮點運算。像每天都會看到的氣象預報、空氣品質模擬等,這些都是一些 相關理論而發展出來的公式,將大量蒐集到的資料進行分析,進而推算出結果,

這些都是需要大量運算後才得到的結果。平行運算具備同時運算的能力,主要的 基本觀念就是將大量的工作進行切割,再分配給其他的處理器去同時執行,如下 圖 2.3 所示。理論上,一份工作分成兩部份,由兩個處理器同時進行,所花費的 時間應減少一半,然而由於過程中的傳遞與處理資料的時間,平行運算的實際效 益是無法提升一倍的。

圖 2.3 平行運算概念

平行運算常見的架構有分散式記憶體平行架構(Distributed Memory Parallel,

Job 1 Job 2 Job 3 Job 4 Task

Core 1 Core 2 Core 3 Core 4 Jobs

Cores

(19)

10

DMP)與共享式記憶體平行架構(Shared Memory parallel,SMP)。DMP 架構常 用的工具為 MPI[21],讓多個程式可以在執行時透過網路交換記憶體的資料。而

SMP 架構常見的使用工具為 OpenMP[20],透過多個執行緒來存取資料進行運算。

兩者最大的差異在於,DMP 架構中,每一個程式都是獨立的,需透過網路來交 換記憶體的資料,而 SMP 架構中,是以多個執行緒共享一塊記憶體空間,因此 減少交換資料時所浪費的時間。以下分別介紹兩種常見的平行運算工具及架構。

2.2.1 MPI

MPI(Message Passing Interface) 於 1992 年開始發展,它是一套可用於平 行電腦系統(包括 Distributed-Memory 和 Shared-Memory 架構)上的資料傳送 模型,常用於分散式記憶體架構的環境上,是一套規格嚴僅的通訊標準,用於處 理分散計算下不同計算節點之間的資料交換,可用 C、C++、Fortran 等程式語言 來開發。MPICH 是由美國 Argonne National Lab 與 Mississippi 州立大學所發展 的免費軟體,是目前最通用的 MPI 軟體。圖 2.4 為分散式記憶體的架構,通常由 數台或數百台相同(或不同)的電腦(節點),利用高速網路相連,以網路作為 資料交換之媒介。每台電腦都具備獨立的處理器、記憶體、作業系統及其他 I/O 裝置等,具高擴充性且成本較為低廉,每一個節點執行一個程式,對於循序性程 式做平行處理較麻煩,在程式開發上較不易。

(20)

11

圖 2.4 分散式記憶體架構

2.2.2 OpenMP

OpenMP (Open Multi-Processing) 是 一 種 支 援 多 平 台 的 Share Memory multiprocessing 程式開發技術,包含了 C、C++、Fortran 等程式語言。支援了 Sun Compiler、GNU Compiler 和 Intel Compiler 等。OpenMP 提供了更強的靈活性,

可以較容易地適應不同的並行系統配置,降低了程式編輯上的難度和複雜度。

OpenMP 的特點在於共享記憶體(Shared Memory),如圖 2.5 所示,多個處 理器對同一塊記憶體作存取的動作,資料的傳遞只局限於處理體與記憶體之間。

在共享記憶體架構中,由多個處理器共用記憶體、作業系統及 I/O 裝置等,而

OpenMP 只適用於此架構的環境中。於同一部電腦上以多執行緒的概念來執行程 式,將一件工作分給多個處理器去做,達到縮短處理時間的目的。OpenMP 提供 了許多高階指令,可以輕易地將程式進行平行化處理,最簡單的情況下,只需要 一行指令,即可將迴圈內的程式平行處理。於共享式架構下的擴充性較有限,且 處理器之間的資料傳遞需處理得當,否則容易造成相互搶奪資源的問題。

MEMORY CPU

MEMORY CPU

MEMORY CPU

MEMORY CPU

Network

(21)

12

圖 2.5 共享式記憶體架構

本論文考量到目前一般個人電腦的處理器效能大幅提升,價格越來越便宜,

且 OpenMP 提供更簡易的高階指令,更易於程式開發上,因此本論文採用共享 式記憶體架構及 OpenMP 來做為本論文的實做環境。

CPU

MEMORY CPU

CPU

CPU

(22)

13

第三章 相關研究

如何有效地進行化合物的設計與開發是進幾年來所關注的議題,其中關於化 合物的演化部份,如:[16, 17, 18]論文中,有學者提出了相關的論文,在此章節 將介紹這些學者對於化合物演化之相關文獻。

3.1 問題定義

圖 3.1 從特徵空間中演化成圖形

在緒論的部份有介紹過,在 kernel methods 中,一組物件(或資料)在目標問 題被對應到某一空間內,這稱為一個特徵空間(feature space),如圖 3.1 所示。透 過一個適當的函式,將 y 從特徵空間中對應回一個物件。

因此,將某一化合物進行分類,將所得到的結果即為特徵向量,再詴圖反向

Feature space

(23)

14

組合出其他與原化合物不同分子結構,但特徵向量相同之化合物。這些化合物具 有相同的原子數量,但排列組合的方式不同。

但由於化合物的複雜程度會影響到處理的時間,換言之,當某一化合物之分 子結構愈簡單,則所需花費在計算組合上的時間將會越短;反之當某一化合物之 分子結構愈複雜時,則需花費的計算時間將會大幅增加。在[18]中提出了 BB-CIPF 演算法,利用 Branch-and-Bound [5]演算法來節省大量的計算時間,是利用單一 個處理器來進行運算,而且只求得一個特徵向量相同但分子結構不同的化合物。

而我們所希望的是能夠縮短處理的時間,並且增加所得到的可能結果,因此我們 以兩個問題為出發點,詴圖利用平行化的方式來處理這個問題。

3.2 路徑頻率 (Path frequency)

近年來,已經有一些學者 [7, 8] 研究使用 SVMs 來將化合物分類,進而轉 換成特徵向量。已經有前人提出了一些不同的具體方法,如 frequency of labeled

paths [12, 14]以及 frequency of small fragments in chemical compounds [3, 8]等,都 是較常見的標記方法。而路徑頻率即是記錄於一化合物中,所有單一出現的原子 數量,以及以任一原子為出發點,記錄原子與原子之間相鄰關係。路徑頻率是用 於進行化合物之特性分類的方法,除了有兩兩相鄰的組合外,也有三個為一組、

四個為一組等組合,如下表 3.1 所示。以 K 值來表示路徑頻率的長度,假若 K 值越大,則該化合物之路徑頻率的數量也會越多。換言之,K 值越大,組合的限

(24)

15

制越多,則最後組合出來的結果將會愈趨近於原化合物,也代表著所得到的化合 物之特性愈接近原化合物。反之,若 K 值越小,組合的限制也越少,雖然能得 到較多不同分子結構的化合物,但符合原化合物之特性也越少。

表 3.1 K 值與路徑頻率的關係

K Path frequency

1 CC、CN、…

2 CC、CN、CCC、CCN、…

3 CC、CN、CCC、CCN、CCCC、…

4 CC、CN、CCC、CCN、CCCC、CCCCC、…

假定Σ 代表任一個字元,ΣK代表由 K 個 Σ 所組成的字串,而 occ(t, s)代表 t 字串於 s 字串中出現的次數。s 的特徵向量 fK(s)會是一個|ΣK|維整數向量,透過 t∈ΣK 來定位 occ(t, s)中的位置。因此 fK(s) = (occ(t, s))t∈ΣK。以下圖 3.2 的化合物作為範 例:在此化合物 G 中可得知共有三種原子,分別為 C、O、H,因此 Σ = {C, O, H}。

假設 K=1,我們可以得到 f1(G) = (2,1,6,2,1,5,1,0,1,5,1,0)。因為,occ(C, G) = 2,C 出現在 G 的次數為 2;occ(O, G) = 1、occ(H, G) = 6、occ(CH, G) = 5、occ(HC, G)

= 5,依此類推。如下表 3.2 所示,完整記錄了從任一原子為出發點,與其他相鄰 的關係。

(25)

16

圖 3.2 範例化合物 G(乙醇)

表 3.2 範例化合物路徑頻率

C O H CC CO CH OC OO OH HC HO HH

2 1 6 2 1 5 1 0 1 5 1 0

如下表 3.3 所示。假若 K 值越大,則該化合物之路徑頻率的數量及長度也會 越多,若 K=4,其全部的路徑頻率也會包含 K=3、K=2、K=1 的路徑頻率。例如 表 3.3 中,K=2 時,其路徑頻率會包含 K=1 的範圍。換言之,K 值越大,路徑頻 率越長,組合的限制越多,則最後組合出來的結果將會愈趨近於原化合物,也代 表著所得到的化合物之特性愈接近原化合物。反之,若 K 值越小,路徑頻率越 短,組合的限制也越少,雖然能得到較多不同分子結構的化合物,但符合原化合 物之特性也越少。利用這種標記路徑的方式,將化合物的特性進行分類,可以把 路徑頻率視為限制條件,具有相同條件之化合物即可視為具有相同特性之化合 物。

H

O C

H C

H

H H

H

(26)

17

表 3.3 路徑頻率限制比較

K=1 K=2

CC CO CH OC OH HC HO

2 1 5 1 1 5 1

CC CO CH OC OH HC HO CCO CCH COH OCC OCH HCC HCH HOC HCO

2 1 5 1 1 5 1 1 5 1 1 2 5 6 1 2

3.3 BB-CIPF 演算法

BB-CIPF ( Branch-and-Bound Chemical compound Inferring from Path Frequency)是由 AKUTSU 等人於 2007 年所提出 [18],以 Tree-like 的方式進 行樹的演化。結合了 Branch-and-Bound [5]演算法,節省大量的計算時間,如下 圖 3.3 所示,BB-CIPF 演算法是採用深度優先(Depth-First-Search,DFS)的方 式進行,每一次插入一個節點於目前化合物 Tcur 後,會形成一個新的候選化合 物 Tnext,會與目標化合物 Ttarget進行比對,若新增一個節點後的 Tnext符合 Ttarget

(27)

18

部份圖形時,則 Tnext即會成為 Tcur。以下圖 3.3 為例,在第一回合中,新增一個 節點後的 Tnext,與目標 Ttarget進行比對後的結果不符合,因此該節點以下的插入 動作即全部省略,第二回合的結果亦同。於第三回合中所插入的節點,經比對目

標 Ttarget後的結果吻合,故將此節點保留至下一回合,依此類推,直到完全符合

化合物為止。但化合物的組合有可能不只一種,於此演算法當中,只得到一個符 合目標化合物的解時,則會立即停止,假若不停止計算,則需花費的時間可能會 更多,且獲得的結果不多,效益可能不足。

(28)

19

圖 3.3 BB-CIPF

在原子進行插入的過程當中,除了要符合目標化合物的結構之外,還需要符 合現實情況,例如,氫原子最多只能擁有一個價數。因此在[18]論文中也定義了

Ttarget

Tcur Tnext Insert atom

Insert atom

Tnext

Tnext Tcur

Tcur

Insert atom

Tcur

Insert atom

Tnext

… Round 1

Round 2

Round 3

Round 4

Round n

Keep

(29)

20

規則來限制各類原子與價數之間的基本關係,稱為 ATOMBOUNDPAIRS,如下圖

3.4 所示,英文字母所代表的為原子種類,如碳、氧、氮、氫等;數字部份代表 價數,例如(C, 2),代表一個碳原子的總價數可以為二;(N, 3)代表一個氮原 子的總價數可以為三,依此類推。

圖 3.4 原子與價數之間的規則[18]

(30)

21

第四章 MC-CIPF 演算法之設計

本論文提出了一個運用多核心處理技術的演算法來提升效能,降低化合物在 演化成為圖形時所需要花費的時間。本章節將介紹演算法之概觀、工作建置、工 作處理、平衡問題的設計方法以及多重解的處理方式。

4.1 MC-CIPF 概觀

MC-CIPF(Multi-Core Chemical compound Inferring from Path Frequency)是 一個基於 BB-CIPF 並加以結合多核心處理技術的演算法,以多核心的優勢將大 量的工作分散,降低整體運算時間。基於 BB-CIPF 演算法為基礎,將目標化合

物進行切割,分散成數個不同的工作(子樹),每一個工作由一個核心以相同的

原理進行處理,由多個核心同時進行計算,進而加快整體的運算時間,且運算的 過程中會不斷地將符合的結果輸出,直到跑完所有可能組合為止。因此,於本演 算法中,將原有的工作進行切割後,再分配給不同的核心進行處理,並且詴圖找 出所有且有相同特徵向量之化合物。

4.2 建置工作與處理

於建置工作階段,會指定由一個 Master Core 將目標化合物載入並進行分析,

並計算出其路徑頻率(Path Frequency)。以目標化合物中所出現之原子作為每一

(31)

22

項工作的起始點,採用廣度優先(Breadth-First-Search,BFS)的方式進行工作 建置,如圖 4.1 流程圖所示。當目標化合物進行分析並取得所擁有的原子種類後,

會以各種類的原子作為每一個工作的起始節點,並且以起始點開始進行插入新的 原子,其插入的新原子必需只出現在目標化合物中。當新插入一個原子後,會與 目標原子進行比對,如圖 4.2 所示,如果圖形出現於目標中,則會將其示為候選 化合物進行保留;若插入新原子後的圖形,如圖 4.3 所示,其結果並無出現在目 標化合物當中,則將之捨棄,直到所有作為起始節點的子樹完成後,第一階段的 工作建置即結束,圖 4.4 所示為一個完整的工作建置範例。氫原子為最後階段才 會一次性補足,因此在這個過程中不會包含氫原子。

(32)

23

圖 4.1 工作建立階段流程圖

開始

捨棄

存放至佇列 出現於

目標?

分析目標化合 物的原子種類

插入新原子

結束 所有種類 已完成?

是 否

(33)

24

圖 4.2 出現於目標化合物中的候選化合物

圖 4.3 沒有出現於目標化合物中的候選化合物

H C C N H

H O

Target Compound

N O

Insert an atom

H H

H C C N H

H O

Target Compound

C C

Insert an atom

H

H

(34)

25

圖 4.4 工作建置範例

當 初 步 的 工 作 建 置 完 成 之 後 , 每 一 個 核 心 即 會 開 始 採 用 深 度 優 先

(Depth-First-Search,DFS)的方式進行運算。當任一個核心取得工作後即開始 進行原子插入的動作,當每插入一個新的節點後所產生出來的候選化合物,會與 目標化合物進行比對,若符合目標化合物的一部份時,則會繼續進行下一個原子 的插入動作,直到完全符合目標後,即會一次性補足氫原子,並且輸出結果;反 之若不符合目標,則會捨棄插入的原子,並且檢查是否有兄弟節點,若有兄弟節 點,則會以該兄弟節點作為另一個插入點;若無兄弟節點,則會繼續往上尋找父

N C

C H H

H

O

H

C O

H N

C O N

C C

O O

N O C

O

C N

O C

O N

N C

N N

Job 1 Job 2 Job 3 Job 4 Job 5 Job 6 Job 7 Job 8 Job 9

(35)

26

節點之兄弟節點,直到父節點為根節點時,則會放棄此候選化合物,繼續進行下 一項工作,直到所有的工作都運算完成後結束。詳細流程如圖 4.5 所示。

圖 4.5 執行工作流程圖

捨棄父節點 開始

出現於 目標?

取得工作

插入新原子

結束 完全符合 目標?

是 否

插入氫原子

輸出結果

還有其他 工作?

有兄弟 節點?

是 父節點

為根?

捨棄工作 否 是

(36)

27

4.3 平衡與重複問題

雖然將工作適當地分配給不同的核心去運算,但還是會有平衡上的問題。我 們可以確認工作的數量,但不能確定每一件工作所需花費的時間。假設有四個核 心,分別為 C1、C2、C3、C4,並分別取得四個建置出來的工作 T1、T2、T3、

T4。若 C1、C2、C3 已經完成了所有的工作,但 C4 的工作尚未完成,則會拖延

整體的運算時間,降低效能。

因此,我們利用分享式記憶體架構的特性,即所有的核心共用記憶體,如圖

4.6 所示,將每一個核心的運算過程中所產生出更多的候選化合物存入佇列之中。

當核心完成了手上的工作後,會再到佇列中取得另一個工作來進行運算。然而確 實將工作進行了分割,並且分配給不同的核心進行處理,但無法確保每一項工作 在進行演化的可能性,換言之,每一個核心所拿到的工作起始狀態皆不同,某種 起始組合下,可能順利地演化成目標化合物;而某種組合情況下則否。且經測詴 後,若將全部的候選化合物放置共用的佇列中,為避免同時存取而造成不可預期 的錯誤,所以將會花費更多的時間於資源分配上。因此我們將初始的化合物放置 於共用的佇列中,由各個核心存取執行,而隨後產生出的候選化合物,也將會存 放至一個共用的佇列之中,並且限制同一時間僅能由一個核心進行存取。其結果 於第五章的實驗部份中可見。

(37)

28

圖 4.6 存取佇列

在核心進行處理的過程當中,假若有符合目標化合物的候選值出現時,會將 其結果輸出,並且會往下一節點繼續進行計算。以下圖 4.7 所示,若將任一個化 合物進行翻轉,即可發現兩個結果是長得一樣的。

圖 4.7 相同的結果

因此我們利用加入 SMILES[4]的方式來刪除重複的結果,在運算過程中建立 一個共用佇列 Squeue,用來存放出現過且不重複的 SMILES 表示式作為比對用,

以確保所得到的每一個結果皆為不同的。以下圖 4.8 為 SMILES 的流程圖,每當 產生一個候選化合物時,便會進行分析該候選化合物的 SMILES 表示式,並且與

C2H7NO

C

O C

N

C

C O

N

Job 1 Job 2 Job 3 Job 4 … Job n

Core 1 Core 2 Core 3 … Core n Queue

Cores

(38)

29

現有存在於 Squeue中的 SMILES 表示式進行比對,若已存在,則此候選化合物將 不會再進行演化。反之,若目前 Squeue中並無此 SMILES 表示式,則會將該 SMILES 表示式記錄於 Squeue中,此候選化合物會保留,並且持續演化。透過 SMILES 的 方式我們可以很簡單地排除掉多餘的重複結果,以達到效能與結果的最佳化。

圖 4.8 SMILES 表示式處理流程

4.4 MC-CIPF 虛擬碼

本小節列出本論文所提出之演算法的虛擬碼。演算法共分三個程序:BFS、

DFS 與 SMILES。在 BFS 階段,先分析出所有存在於目標化合物 Ttarget中的原子 開始

存在? 否 分析 SMILES 表示式

與 Squeue比對

結束

存入 Squeue

捨棄 是

(39)

30

種類,並且進行工作的建置,為確保不讓工作的內容重覆,因此將所得到的工作 先進行 SMILES 的計算,再存放在佇列 Tqueue中。當核心取得工作 Ttemp時,會將 分析該候選化合物的路徑頻率 ftemp,並且開始進行 DFS 階段。將原子插入到 Ttemp 後成為 Tnext,並且分析出 Tnext的路徑頻率 fnext與目標化合物之路徑頻率 ftarget進行

比對,Tnext符合 Ttarget的一部份時,則會重複進行 DFS 階段,將原子一一插入並

且與 Ttarget進行比對。在 DFS 的過程中,若 Ttemp的路徑頻率與目標 Ttarget相符時,

會再進入 SMILES 程序。於 SMILES 程序中,會分析 Ttemp的 SMILES 表示式 Stemp並且與目前已獲得的 SMILES 佇列 Squeue進行比對。若 Ttemp的 SMILES 表示式尚 未出現於 Squeue中,則會將 Stemp加入 Squeue中,並且則將氫原子補足,輸出結果。

反之,則會捨棄 Ttemp這個結果,直到 Tqueue中的工作都被執行完畢為止。

Procedure BFS (T

targe)

Let Tqueue be a queue that stores all candidate compounds;

Let Squeue be a queue that stores SMILES expression;

for all a ∈ all atoms exist in Ttarget do Let Ttemp be a temporary compound Ttemp ← ∅;

Insert a into Ttemp;

if Ttemp ∈ Ttarget AND SMILES(Ttemp)=false then Add Ttemp to Tqueue;

else

continue (examine the next atom in Ttarget);

end

(40)

31

end

while Tqueue is not empty do

for each core compute a compound from Tqueue per time do compute feature vector ftempi from Ttempi in Tqueue;

if MC-CIPF(Ttempi, ftempi, Ttarget, ftarget)=false then output “no solution”;

end end

Procedure MC-CIPF(T

tempi, ftempi, Ttarget, ftarget) if ftempi = ftarget then

return true;

L ← ∅;

if { L(u)|u ∈ V(Ttemp)} ∪ {a} ⊈ atomset(ftarget) then continue;

for all w ∈ V(Ttemp) do

Let Tnext be a tree gotten by connecting new leaf u with label a to w by bond b;

if SMILES(Tnext)=false then break;

if w does not satisfy the valence constraint then continue;

Compute fnext from Tnext and ftemp;

if MC-CIPF(Tnext, fnext, Ttarget, ftarget)=true then return true;

end end

(41)

32

return false;

Procedure SMILES (T

tempi)

Let Stemp be a temporary SMILES expression;

compute Stemp from Ttempi; if Stemp exist in Squeue then return false;

else

add Stemp to Squeue; return true;

end

(42)

33

第五章 實驗結果

5.1 實驗環境

在本論文實驗中,我們的實驗環境如表 5.1 所示,我們利用單顆四核心之處 理器進行實驗,分別針對於核心的使用數量與 K 值長度兩者之間的變化來進行 實驗。我們所使用的資料是日本京都大學的 KEGG(Kyoto Encyclopedia of Genes

and Genomes) LIGAND COMPOUND Database[10, 11, 12]。

表 5.1 硬體與軟體規格

Processor Intel Core 2 Quad Q6600

RAM 4GB

OS Windows Vista with Service Pack 1 Program Environment Visual C++ and OpenMP C/C++

Version 2.0

5.2 實驗結果

承上所述,本論文實驗環境主要以單機運算為主,透過單顆四核心的處理器 來進行平行處理。在實驗的部份,我們分別進行運算了五個不同的化合物,分別 為 C00097、C00497、C11109、C14601 以及 C15987 五個化合物,下表 5.2 為五 個不同化合物的詳細資訊。

(43)

34

表 5.2 實驗化合物詳細資料

編號 化學式 原子數 原子數(不含氫) 圖形

C00097 C3H7NO2S 14 7

C00497 C4H6O5 15 9

C11109 C4H9NO2 16 7

C14601 C4H8O3 15 7

C15987 C5H11NO2 19 8

每一個化合物皆以單核、雙核、四核等三種不同核心數量的支援度下,以每 一種核心數量的環境中,分別以不同長度的路徑頻率 K 值來進行運算。K 值最小 為 1,最大為 4,每次增長量為 1。

表 5.3、圖 5.1 以及圖 5.2 為化合物 C00097 的實驗結果。在表 5.3 中可以看 到各個核心在不同的路徑頻率限制下所花費的處理時間,當 K=1 時,在單核心

(44)

35

處理的情況下,完成運算所花費的總時間為 0.36 秒;而在雙核心的情況下,則 花費了 0.14 秒完成,四核心時為 0.48 秒,而所得到的結果為 23 個可行的化合物。

於 K=1 且由四個核心下去執行時,最短處理時間為 Core 2,花費的時間只有 0.09 秒,其次為 Core 4,為 0.10 秒,Core 1 及 Core 4 分別為 0.16 秒及 0.10 秒。造成 這個結果的原因為,每一個核心所接到的工作起始狀態不同,例如表 5.2 中,

C00097 化合物的圖型,假設 Core 1 的起始狀態為 O-C,Core 3 的起始狀態為 C-S,

而由 O-C 為基礎開始演化出的可能性較多,但由 C-S 作為基礎的可能性較少,

當 Core 3 的工作結束時,其他的 Cores 還在繼續進行演算,因此工作完成時間上 會產生差距。

表 5.3 化合物 C00097 詳細數據 Instances Cores detail CPU time (sec.)

K=1 K=2 K=3 K=4 C00097 1 Core 0.36 0.14 0.19 0.48

2 Cores Core 1 0.14 0.07 0.07 0.19 Core 2 0.20 0.06 0.08 0.23 Max 0.20 0.07 0.08 0.23 4 Cores Core 1 0.16 0.05 0.05 0.09 Core 2 0.09 0.05 0.06 0.15 Core 3 0.18 0.04 0.06 0.13 Core 4 0.10 0.04 0.05 0.08 Max 0.18 0.05 0.06 0.15 Results 22 3 1 1

於下圖 5.1 中,當 K=1 時,平均所花費的時間為最高,原因在於只有單一個核心 在進行處理全部的工作,因此需要花費較多的時間;而 K=4 時,所花費的時間 為次高,原因在於每次新插入新原子後,需要重新去計算化合物的路徑頻率,再

(45)

36

去跟目標化合物進行比對,因此需花費更多的時間在重新計算上。

在下圖 5.2 中為 C00097 化合物的效能提升率,我們可以看到當所支援的核 心數量越多時,能夠有更好的效能。

圖 5.1 化合物 C00097 所花費的計算時間

圖 5.2 化合物 C00097 的效能提升率

0 0.1 0.2 0.3 0.4 0.5 0.6

1 Core 2 Cores 4 Cores

Time (sec.)

C00097 computing time

K=1 K=2 K=3 K=4

0 0.5 1 1.5 2 2.5 3 3.5

1 Core 2 Cores 4 Cores

Speedup ratio

C00097 Speedup

K=1 K=2 K=3 K=4

(46)

37

下表 5.4、圖 5.3 以及圖 5.4 為化合物 C00497 的實驗結果,當只有單核心的 情況下,K=4 時,花費了 7.01 秒,原因在於所有的工作只能由單一核心慢慢消 化,再加上需要重新計算路徑頻率,因此花費的時間相較於其他的情況下較高。

於多個核心的支援下,部份的核心花費時間相較於其他核心來得小,原因在於每 一個核心所獲得的工作起始狀態不同,進而影響到每一個工作的完成時間。

表 5.4 化合物 C00497 詳細數據 Instances Cores detail CPU time (sec.)

K=1 K=2 K=3 K=4 C00497 1 Core 6.37 1.72 2.08 7.01

2 Cores Core 1 4.29 0.97 1.27 4.56 Core 2 2.65 0.94 0.71 2.13 Max 4.29 0.97 1.27 4.56 4 Cores Core 1 0.36 0.66 0.20 0.57 Core 2 2.44 0.93 0.47 4.19 Core 3 4.00 0.22 1.18 1.39 Core 4 0.16 0.41 0.28 0.48 Max 4.00 0.93 1.18 4.19 Results 5 2 1 1

由下圖 5.3 可以看到,如上述 K=4、單核心的情況下,花費的時間為最多,

當核心支援的數量越多時,可以明顯的看到花費時間大幅減少,於圖 5.4 中可見,

其效能提升率約為 1.8 倍。

(47)

38

圖 5.3 化合物 C00497 所花費的計算時間

圖 5.4 化合物 C00497 的效能提升率

表 5.5、圖 5.5 以及圖 5.6 為化合物 C11109 的實驗結果,於下表 5.4 可明顯 看到單核心且 K=4 時,花費的時間最長,其他情況下所花費的計算時間都較小。

處理完化合物 C11109 後分別得到的結果為 3、1、1、1。於不同核心數量的支援 下,可看到部份核心的處理時間相較於其他核心較為短,原因在於該核心所取得

0 1 2 3 4 5 6 7 8

1 Core 2 Cores 4 Cores

Time (sec.)

C00497 computing time

K=1 K=2 K=3 K=4

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

1 Core 2 Cores 4 Cores

Speedup ratio

C00497 Speedup

K=1 K=2 K=3 K=4

(48)

39

的工作皆無演化的可能性,因此運算速度較短。

表 5.5 化合物 C11109 詳細數據 Instances Cores detail CPU time (sec.)

K=1 K=2 K=3 K=4 C11109 1 Core 0.45 0.36 0.43 1.18

2 Cores Core 1 0.23 0.20 0.16 0.45 Core 2 0.22 0.23 0.23 0.66 Max 0.23 0.23 0.23 0.66 4 Cores Core 1 0.14 0.11 0.12 0.26 Core 2 0.17 0.15 0.10 0.26 Core 3 0.11 0.19 0.18 0.20 Core 4 0.20 0.11 0.12 0.45 Max 0.20 0.19 0.18 0.45 Results 3 1 1 1

於下圖 5.5 以及圖 5.6 分別可以看出核心的支援數量越多時,所花費的時間 也越少,效能也有更明顯的提升,如圖 5.6 中所示,K=4 且核心支援數量為 4 時,

效能提升超過 2.5 倍。

圖 5.5 化合物 C11109 所花費的計算時間

0 0.2 0.4 0.6 0.8 1 1.2 1.4

1 Core 2 Cores 4 Cores

Time (sec.)

C11109 computing time

K=1 K=2 K=3 K=4

(49)

40

圖 5.6 化合物 C11109 的效能提升率

表 5.6、圖 5.7 以及圖 5.8 為化合物 C14601 的實驗結果。在下表 5.6 中,化 合物 C14601 於單核心支援情況下,K=3 以及 K=4 所花費的處理時間分別是 0.10 以及 0.23 秒,而在四核心支援的情況下,則平均低於 0.5 秒,而所得到的結果分 別為 4、1、1、1 個。

表 5.6 化合物 C14601 詳細數據 Instances Cores detail CPU time (sec.)

K=1 K=2 K=3 K=4 C14601 1 Core 0.07 0.07 0.10 0.23

2 Cores Core 1 0.02 0.03 0.03 0.12 Core 2 0.02 0.03 0.04 0.05 Max 0.02 0.03 0.04 0.12 4 Cores Core 1 0.02 0.02 0.02 0.03 Core 2 0.02 0.02 0.02 0.03 Core 3 0.02 0.02 0.03 0.03 Core 4 0.02 0.02 0.02 0.10 Max 0.02 0.02 0.03 0.10 Results 4 1 1 1

0 0.5 1 1.5 2 2.5 3

1 Core 2 Cores 4 Cores

Speedup ratio

C11109 Speedup

K=1 K=2 K=3 K=4

(50)

41

如下圖 5.7 以及圖 5.8 所示,核心支援數量的提升,對於處理時間上有顯著 的降低。於圖 5.8 中,K=4 且核心支援數量達四個時,效能明顯提升約 3.5 倍。

圖 5.7 化合物 C14601 所花費的計算時間

圖 5.8 化合物 C14601 的效能提升率

表 5.7、圖 5.9 以及圖 5.10 為化合物 C15987 的實驗結果。於下表 5.7 所示,

0 0.05 0.1 0.15 0.2 0.25

1 Core 2 Cores 4 Cores

Time (sec.)

C14601 computing time

K=1 K=2 K=3 K=4

0 0.5 1 1.5 2 2.5 3 3.5 4

1 Core 2 Cores 4 Cores

Speedup ratio

C14601 Speedup

K=1 K=2 K=3 K=4

(51)

42

平均 K=1 時所花費的時間最長,而主要的原因在於化合物種類多,複雜程度也 較難以掌控,但提升 K 值可以有效地減少更多的計算時間。化合物當 K=1 且以 四核心進行平行處理的情況下, Core 3 所花費的時間最高,可見其分配到的工 作起始狀態較具演化的可能性,因此花費時間會多於其他核心。C15987 所得到 的結果數量分別為 6、1、1、1。

表 5.7 化合物 C15987 詳細數據 Instances Cores detail CPU time (sec.)

K=1 K=2 K=3 K=4 C15987 1 Core 0.30 0.08 0.10 0.17

2 Cores Core 1 0.02 0.02 0.05 0.10 Core 2 0.24 0.03 0.02 0.03 Max 0.24 0.03 0.05 0.10 4 Cores Core 1 0.01 0.01 0.04 0.03 Core 2 0.01 0.01 0.00 0.01 Core 3 0.24 0.02 0.02 0.08 Core 4 0.02 0.00 0.02 0.03 Max 0.24 0.02 0.04 0.08 Results 6 1 1 1

如下圖 5.9 以及圖 5.10 所示,核心支援數量的提升,可以有效的減少計算時 間,且效能提升率最高則超過 3 倍。

(52)

43

圖 5.9 化合物 C15987 所花費的計算時間

圖 5.10 化合物 C15987 的效能提升率

從上述的實驗數據中可以得知,隨著路徑頻率的長度越長時,所得到的結果 也會越少,且花費的時間可能會越來越長,原因在於路徑頻率越短時,也代表著 化合物的限制也越少,因此可能性的組合也就越多,相對的需要花費更多的時間

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35

1 Core 2 Cores 4 Cores

Time (sec.)

C15987 computing time

K=1 K=2 K=3 K=4

0 0.5 1 1.5 2 2.5 3 3.5

1 Core 2 Cores 4 Cores

Speedup ratio

C15987 Speedup

K=1 K=2 K=3 K=4

(53)

44

來找出所有的可行化合物,且所得到的結果,會與原化合物的相近程度較低;而 路徑頻率越長時,代表限制越多,相對的能夠符合全部限制的化合物也就越少,

且得到的結果也會越趨近於目標化合物。因此,在每次在插入一個新的原子之後,

處理器得花費更多的時間在重新分析該化合物的路徑頻率,所以 K 越長,也會 花費更多的時間在重新計算上。而在不同核心所花費的時間不趨於平均的情況,

原因在於每一項切割後的工作起始狀態不同,演化的可能性也有所不同,且運算 過程中,因考量到資源的分配,避免各核心之間相互搶奪資源,造成過多的重複 運算或不可預期的結果,所以將運算過程中產生的候選化合物存放在一個共用的 佇列中,並且限定同一時間只有一個核心可以進行存取。若當佇列中僅剩一個工 作時,最後取得該工作的核心會繼續進行運算,但其他核心會因為沒有工作可以 運算而呈現閒置狀態,因此會有部分核心總運算時數較少的情形發生。

(54)

45

第六章 結論

6.1 結論

有鑒於化合物的開發對於人類未來發展而言的重要性及必要性,在目前化合 物開發的速度上有待加強,但對於研究人員而言已經是相當大的負擔。以醫藥上 為例,近年來抗藥性及新型流感等問題,已經對人類或其他物種的生命安全造成 莫大的威脅,使得新的藥用化合物開發為當務之急。然而已經有許多研究人員紛 紛投入如何加速開發或改良化合物等問題,以計算的方式將現有化合物進行分析 其特性,並且重新組合具相同特性但分子結構不同的化合物,這對於更進一步的 發展具有一定的價值,但就計算花費的時間以及結果而言,但效果有限。也因此,

在本論文中,我們提出了 MC-CIPF 演算法,這是一個以多核心處理技術為基礎 的演算法,將原本大量的工作分配給多個核心來同時處理來縮短整理的處理時間,

同時也增加了產出的結果。在實驗的結果中可以看到,採用平行運算後的效能提 升率皆有達 2 倍以上,最高甚至大於 3 倍,整體而言平均提升 2 倍左右,由於每 一個核心處理的工作起始狀態不一而產生執行時間上的差距。本論文所提出的演 算法,可以將大量計算分配給多核心同步處理,有效地減少計算時間,並且增加 結果,更有助於進一步的研究發展。

(55)

46

6.2 未來研究方向

本論文所提出的 MC-CIPF 演算法是以多核心處理器作為平行運算的工具,

由於現行圖形處理器(Graphic Processing Unit,GPU)的發展相當快速,單以計 算速度而言,已經比 CPU 快上數倍。以目前市售的一般娛樂用繪圖顯示卡而言,

其核心數量皆已高達數十顆之多。未來,我們將運用 GPU 來取代 CPU 的運算工 作,如 nVidia 的 CUDA[22] 或 ATI(AMD) 的 Stream[13] 等技術,以更多 的運算單元來支援平行運算。另一方面,針對平衡問題作進一步地改善,例如當 某一個核心已運算完成,且佇列中已無其他的工作,這時再由其他核心將正在執 行的工作進行切割,再分配給已運算完成的核心,達到更進一步的平行處理,但 資源的分配需要有良好的規劃,否則可能會產生過多的重複計算。同時,記憶體 存取的時機也需要有完善的順序,否則可能會產生相互搶奪資源,或反而花費過 多的時間在分配資源等問題。

(56)

47

參考文獻

[1] G.H. Bakir, A. Zien, K. Tsuda, “Learning to find graph pre-images,” In Proc, The 26th DAGM Symposium, Lecture Notes in Computer Science, Springer, vol.

3175, pp. 253-261, 2004.

[2] B. E. Boser, I. Guyon, V. Vapnik, “A Training Algorithm for Optimal Margin Classifiers,” In Proceedings of the 5th Annual ACM Workshop on Computational Learning Theory, ACM Press, pp. 144-152, 1992.

[3] E. Byvatov, U. Fechner, J. Sadowski, G. Schneider, “Comparison of support vector machine and artificial neural network systems for drug/nondrug classification,” Journal of Chemical Information and Computer Sciences, vol. 43, pp. 1882-1889, 2003.

[4] J. Inf. Chem, Sci. Comput, “SMILES, a chemical language and information system. 1. Introduction to Methodology and Encoding Rules,” American Chemical Society, 1988.

[5] J. Clausen, "Branch and Bound Algorithms - Principles and Examples," Parallel Computing in Optimization, pp. 239-267, 1997

[6] C. Cortes, V. Vapnik, “Support vector networks,” Machine Learning, vol. 20, pp.

273-297, 1995.

[7] N. Cristianini, J. Shawe-Taylor, “An Introduction to Support Vector Machines and Other Kernel-based Learning Methods,” Cambridge Univ., Press, 2000.

[8] M. Deshpande, M. Kuramochi, N. Wale, G. Karypis, “Frequent substructure-based approaches for classifying chemical compounds,” IEEE Trans, Knowledge and Data Engineering, vol. 17, pp. 1036-1050 2005.

[9] H. Kashima, K. Tsuda, A. Inokuchi, “Marginalized kernels between labeled graphs,” In Proc, 20th Int, Conf, Machine Learning, pp. 321-328, 2003.

[10] M. Kanehisa, M Araki, S. Goto, M. Hattori, M. Hirakawa, M. Itoh, T. Katayama, S. Kawashima, S. Okuda, T. Tokimatsu, Y. Yamanishi, “KEGG for linking genomes to life and the environment,” Nucleic Acids Res. 36, pp. 480-484, 2008.

[11] M. Kanehisa, S. Goto, M. Hattori, K.F. Aoki-Kinoshita, M. Itoh, S. Kawashima, T. Katayama, M. Araki, M. Hirakawa, “From genomics to chemical genomics:

new developments in KEGG,” Nucleic Acids Res. 34, pp. 354-357, 2006.

[12] M. Kanehisa, S. Goto, “KEGG: Kyoto Encyclopedia of Genes and Genomes,”

Nucleic Acids Res. 28, pp. 27-30, 2000.

(57)

48

[13] H. Mike, "Stream computing," International Conference on Computer Graphics and Interactive Techniques, Los Angeles, California, 2008.

[14] P. Mahé, N. Ueda, A. Tatsuya, J-L. Perret, J-P. Vert, “Graph kernels for molecular structure-activity relationship analysis with support vector machines,”

Journal of Chemical Information and Modeling, vol. 45, pp. 939-951, 2005.

[15] B. Schoelkopf, A. J. Smola, “Learning with Kernels,” MIT Press, Cambridge, MA, 2002.

[16] A. Tatsuya, F. Daiji, “Inferring a graph from path frequency,” In Proc. 16th Symp.

Combinatorial Pattern Matching. Lecture Notes in Computer Science, Springer, vol. 2527, pp. 371-392, 2005.

[17] A. Tatsuya, F. Daiji, “On inference of a chemical structure from path frequency,”

Proc, 2005 International Joint Conference of InCoB, AASBi, and KSBI, pp.

96-100, 2005.

[18] A. Tatsuya, F. Daiji, “Inferring a Chemical Structure from a Feature Vector Based on Frequency of Labeled Paths and Small Fragments,” APBC, pp. 165-174, 2007.

[19] V.N. Vapnik, “Statistical Learning Theory,” Wiley, New York, 1998.

[20] D. Leonardo, M. Ramesh, “OpenMP: An Industry-Standard API for Shared-Memory Programming,” IEEE Computational Science & Engineering, vol.5, pp. 46-55, January 1998.

[21] G. William, L. Ewing, D. Nathan, S. Anthony, “A high-performance, portable implementation of the MPI message passing interface standard”, Parallel Computing 22 pp. 789-828, 1996.

[22] NVIDIA CUDA “Compute Unified Device Architecture Programming Guide,”

NVIDIA: Santa Clara, CA, 2007.

[23] IBM POWER4 System Microarchitecture

(http://www-03.ibm.com/systems/p/hardware/whitepapers/power4.html)

參考文獻

相關文件

The purposes of this research are to find the factors of raising pets and to study whether the gender, age, identity, marital status, children status, educational level and

T-test on the emphasizing degree with different factors according to grouping by genders shows that girls and boys attribute differences to the factors, such as close friends,

L.(1998) Strategic brand management: Building, Measuring and Managing Brand Equity., Inc., Upper Saddle River,NJ: Prentice-Hall. L.(2003)Strategic Brand Management: Building,

Therefore this research was analyzed the budget information of the Ministry of Transportation and Communications (including 13 departments) the major construction

It’s based on the PZB service quality gap model and SERVQUAL scale, and together with the reference to other relevant research and service, taking into account

Y., (1997), “Resource recovery of sludge as building and construction materials — a future trend in sludge management,” Journal of Water Science and Technology, Vol. (2000)

The study found that (1) from 2006 to 2009, the rising rate for single item is, 23.3% for sand, 36.5% for aggregate, 7.7% for cement and 9.5% for concrete, (2) for sand, the price on

The research data are collected by questionnaire survey and analysed in electors’ opinion with political party of candidate, application of information technology media,