SlideShare a Scribd company logo
1 of 73
CPU平行粒子群最佳化應用於
平面桁架結構最佳化設計
指導老師:洪士林 教授
學生:洪銘澤
1
 背景
平行運算
 動機
 目的
 方法
 測試案例
 結論
大綱
2
 循序程式
 平行程式
平行運算
3
待解問題
tN ‧‧‧ ‧‧‧ t2 t1 t0
處理器
指令待解問題
tN ‧‧‧ ‧‧‧ t2 t1 t0
處理器
處理器
處理器
4
國道一號泰山收費站
 節省時間
利用更多核心減少運算時間
 解決大計算量的問題
結構最佳化、模擬流體、或氣象。
 更有效率地運用硬體
CPU核心數增加
平行運算優點
5
 背景
 動機
最佳化
 目的
 方法
 測試案例
 結論
大綱
6
最佳化
7
 最佳化早期使用梯度作為搜尋方向的根據
缺點:容易掉入局部最佳解
最佳化
8
搜尋初始點示意圖
 常見仿生最佳化理論
粒子群最佳化(PSO)
基因演算法(GA)
蟻群演算法(ACO)
模擬退火眼算法(SA)
調和搜尋演算法(HS)
禁制搜尋法(TS)
仿生最佳化理論
9
 1995年由學者Eberhart和Kennedy提出粒子群最
佳化(Particle Swarm Optimization, PSO)
 模擬動物群體行為的最佳化演算法
粒子群最佳化
10
最佳化演算法比較
11
粒子群最佳化 梯度搜尋法
優點 全域搜尋 收斂快、計算量小
缺點 收斂慢、計算量大 易搜尋區域最佳解
 背景
 動機
 目的
 方法
 測試案例
 結論
大綱
12
 以OpenMP運算環境為基礎,開發一多CPU平台
之平行化運算粒子群最佳化程式於平面桁架最佳
化設計問題。
 善用多核心CPU
利用多執行緒達到平行運算效果
 減少最佳化運算時間
測試不同計算量的目標函數
目的
13
 背景
 動機
 目的
 方法
OpenMP
粒子群最佳化
平行運算粒子群最佳化
 測試案例
大綱
14
Open specification for Multi-Processing
 應用程式介面(API)
多執行緒
共享記憶體
 適用性
C/C++和Fortran
 Fork-Join模型
 編譯器指導指令基礎(compiler directive based)
#pragma omp ……
OpenMP
15
Fork-Join 模型
16
A B C A B C D A B
A
B
C
D
A
B
C
A
B
循序程式
平行程式
 兩陣列相加循序執行
 利用OpenMP compiler directive平行
Fork-Join範例
17
……
int A[10], B[10], C[10];
for (int i=0; i<10; i++)
A[i] = B[i] + C[i];
end for
……
#include <omp.h>
……
int A[10], B[10], C[10];
// Fork
#pragma omp parallel for num_threads(4)
{
for (int i=0; i<10; i++)
A[i] = B[i] + C[i];
end for
} // join
……
 C/C++ 格式
範例:
#pragma omp parallel default(none) private(x, y)
OpenMP Directives
18
#pragma omp directive-name [clause, ...] newline
必須 必須
parallel,
do,
for, ……
非必須 必須
directive-name
clause clause
競爭危害(Race Condition)
19
競爭危害範例
競爭危害(Race Condition)
20
競爭危害輸出結果
i j
21
0 1 2 3
0 1 2 3
i
j
執行緒
tid=0 tid=2tid=1 tid=3
j=4
tid=2
tid=0
tid=1
tid=3
22
0 1 2 3i
執行緒
tid=0 tid=2tid=1 tid=3
tid=2
tid=0
tid=1
tid=3
0 1 2 3j
0 1 2 3j
0 1 2 3j
0 1 2 3j
for Directives
23
矩陣乘法在C/C++循序執行
for Directives
24
矩陣乘法在C/C++平行執行
粒子群最佳化
25
粒子群最佳化
26
流程圖
初始化族群給定每個粒子
隨機位置和速度
計算每個粒子的目標函數值
是否滿足停止條件
更新每個粒子的位置和速度
計算每個粒子的目標函數值
最佳化結果
是
否
粒子群最佳化
28
粒子群最佳化演算法
29
粒子群最佳化循序演算法
平行運算粒子群最佳化
30
初始化族群給定每個粒子
隨機位置和速度
計算每個粒子的目標函數值
是否滿足停止條件
更新每個粒子的位置和速度
計算每個粒子的目標函數值
最佳化結果
粒子群最佳化流程圖
平行運算粒子群最佳化
31
粒子群最佳化平行化演算法
p:核心數
加速比
32核心數
一般情形
理論值
加速比
 背景
 動機
 目的
 方法
 測試案例
矩陣乘法
數值最佳化
平面桁架結構最佳化
 結論
大綱
33
 中央處理器(CPU)
intel i5-2400 (6M Cache, up to 3.40 GHz) 四核心
 記憶體(RAM)
8G
 作業系統(OS)
Windows 7 ultimate
 開發平台(IDE)
Microsoft Visual Studio 2012
測試環境
34
矩陣乘法
35
矩陣乘法
36
宣告四矩陣為:ArrA, ArrB, ArrC, ArrD
給予ArrA, ArrB每個矩陣元素隨機浮點數
循序:ArrA與ArrB相乘存至ArrC
平行:ArrA與ArrB相乘存至ArrD
加總ArrC和ArrD矩陣元素相減平方和
矩陣乘法演算法流程圖
矩陣列行大小(m*m) 循序 (秒) 平行(秒) 加速比
25 0.011 0.147 0.07
50 0.056 0.037 1.51
100 0.462 0.16 2.82
200 3.711 1.169 3.17
400 35 10.783 3.25
800 396.67 115.92 3.42
1600 4669.6 1216.67 3.84
矩陣乘法
37
矩陣乘法測試結果
循序計算:77.82分鐘
平行計算:20.27分鐘
相差:57.54 分鐘
矩陣乘法
38
3.84
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
0 500 1000 1500 2000
加速比
矩陣列行值m*m
加速比與矩陣大小關係
30個變數平方和之最小值
39
粒子總數 循序(秒) 平行(秒) 加速比
4 1.923 1.163 1.65
20 8.647 3.329 2.60
60 25.535 8.358 3.06
500 209.62 63.54 3.30
1,000 422.97 125.87 3.36
10,000 4231.9 1150.5 3.68
100,000 41819.5 11395.7 3.67
200,000 83466 22382 3.73
500,000 207222 55882 3.71
30個變數平方和之最小值
40
循序運算:23.2小時
平行運算:6.2小時
相差:17小時
粒子總數與加速比關係
30個變數平方和之最小值
41
3.73
0
0.5
1
1.5
2
2.5
3
3.5
4
0 1 2 3 4 5 6 7
加速比
log(粒子總數)
加速比與粒子數關係
30個變數平方和之最小值
42
0.00
5000.00
10000.00
15000.00
20000.00
25000.00
30000.00
0
267
534
801
1068
1335
1602
1869
2136
2403
2670
2937
3204
3471
3738
4005
4272
4539
4806
5073
5340
5607
5874
6141
目標函數值
迭代次數
最佳化收斂情形
目標函數值:0.868
Beale's function
43
Beale's function
44
Beale’s function 繪製圖形
粒子總數 循序(秒) 平行(秒) 加速比
20 1.884 1.31 1.43
60 5.023 2.525 1.99
120 9.879 4.105 2.41
240 19.61 7.073 2.77
500 39.998 13.691 2.92
1000 79.639 27.92 2.85
5000 393.07 125.341 3.14
10000 782.09 237.309 3.30
Beale's function
45
粒子總數與加速比關係
循序運算:13.03 分鐘
平行運算:3.96 分鐘
相差:9.07分鐘
Beale's function
46
3.30
0.00
0.50
1.00
1.50
2.00
2.50
3.00
3.50
1 1.5 2 2.5 3 3.5 4 4.5
加速比
log(粒子總數)
加速比與粒子數關係
Beale's function
47
0
0.005
0.01
0.015
0.02
0.025
0.03
0.035 0
69
138
207
276
345
414
483
552
621
690
759
828
897
966
1035
1104
1173
1242
1311
1380
1449
1518
1587
1656
1725
1794
1863
1932
目標函數值
迭代次數
最佳化收斂情形
目標函數值:0.000
平面桁架結構斷面最佳化
48
 10支桿件平面桁架結構
案例一分析
49
案例一分析
50
粒子總數 循序(秒) 平行(秒) 加速比
4 0.897 0.391 2.29
20 4.195 1.605 2.61
40 8.46 3.06 2.76
100 24.33 8.42 2.89
500 103.53 32.41 3.19
1000 207.76 63.45 3.27
5000 1017.89 296.81 3.43
案例一分析
51
粒子總數與加速比關係
循序運算:16.96 分鐘
平行運算:4.94 分鐘
相差:12.02分鐘
案例一分析
52
3.43
0
0.5
1
1.5
2
2.5
3
3.5
4
0 0.5 1 1.5 2 2.5 3 3.5 4
加速比
log(粒子總數)
加速比與粒子數關係
案例一分析
53
0
1000
2000
3000
4000
5000
6000
7000
8000
0
122
244
366
488
610
732
854
976
1098
1220
1342
1464
1586
1708
1830
1952
2074
2196
2318
2440
2562
2684
2806
2928
3050
3172
3294
3416
3538
3660
3782
3904
4026
4148
4270
4392
4514
4636
4758
4880
總重(lb)
迭代次數
最佳化收斂情形
斷面編號 PSO (in2) PSO (Li) (in2)
A1 31.51 33.47
A2 0.15 0.11
A3 25.29 23.18
A4 14.25 15.48
A5 0.11 3.65
A6 0.33 0.12
A7 7.06 8.33
A8 18.94 23.34
A9 24.01 23.01
A10 0.11 0.19
總重(lb) 5131.0 5529.5
案例一分析
54
斷面最佳化結果
398.5 lb (-13.9%)
迭代次數 循序(秒) 平行(秒) 加速比
20 2.20 1.49 1.47
50 5.18 2.50 2.07
100 10.60 4.48 2.37
500 52.53 16.98 3.09
1000 103.13 32.50 3.17
5000 513.57 153.53 3.35
10000 1017.89 296.81 3.43
50000 5132.18 1498.93 3.42
案例一分析
55
迭代次數與加速比關係
粒子總數:5000
 17支桿件平面桁架
案例二分析
56
案例二分析
57
粒子總數 循序(秒) 平行(秒) 加速比
4 0.948 0.465 2.04
20 4.297 2.092 2.05
40 8.78 3.94 2.23
100 21.13 9.01 2.35
500 106.94 35.04 3.05
1000 212.28 60.91 3.49
5000 1058.43 298.65 3.54
案例二分析
58
粒子總數與加速比關係
循序運算:17.64 分鐘
平行運算: 4.98 分鐘
相差:12.66分鐘
案例二分析
59
3.54
0
0.5
1
1.5
2
2.5
3
3.5
4
0 0.5 1 1.5 2 2.5 3 3.5 4
加速比
log(粒子總數)
加速比與粒子數關係
案例二分析
60
0
1000
2000
3000
4000
5000
6000 0
173
346
519
692
865
1038
1211
1384
1557
1730
1903
2076
2249
2422
2595
2768
2941
3114
3287
3460
3633
3806
3979
4152
4325
4498
4671
4844
總重(lb)
迭代次數
最佳化收斂情形
斷面編號 PSO (in2) PSO (Li) (in2)
A1 14.024 15.766
A2 1.200 2.263
A3 13.217 13.854
A4 0.222 0.106
A5 10.037 11.356
A6 4.448 3.915
A7 10.025 8.071
A8 1.536 0.100
A9 8.397 5.850
A10 0.160 2.294
A11 4.412 6.313
A12 0.185 3.375
A13 5.339 5.434
A14 5.373 3.918
A15 3.978 3.534
A16 2.158 2.314
A17 5.537 3.542
總重(lb) 2670.23 2724.37
案例二分析
61
-54.14 lb (-1.99%)
 26支桿件平面桁架
案例三分析
62
案例三分析
63
粒子總數 循序(秒) 平行(秒) 加速比
4 2.344 0.795 2.95
20 11.506 3.666 3.14
40 22.945 7.151 3.21
100 56.192 17.553 3.20
500 281.287 84.064 3.35
1000 556.545 160.861 3.46
5000 2832.562 779.182 3.64
案例三分析
64
粒子總數與加速比關係
循序運算:47.20 分鐘
平行運算:12.98 分鐘
相差:34.22分鐘
案例三分析
65
3.64
0
0.5
1
1.5
2
2.5
3
3.5
4
0 0.5 1 1.5 2 2.5 3 3.5 4
加速比
log(粒子總數)
粒子總數與加速比關係
案例三分析
66
0
2000
4000
6000
8000
10000
12000
14000
16000 0
173
346
519
692
865
1038
1211
1384
1557
1730
1903
2076
2249
2422
2595
2768
2941
3114
3287
3460
3633
3806
3979
4152
4325
4498
4671
4844
總重(lb)
迭代次數
最佳化收斂情形
最佳化結果:5451.02 lb
案例三分析
67
桿件編號 桿件應力 (ksi)
1 -4.64
2 4.77
3 -29.19
4 27.16
5 -7.41
6 -48.89
7 -10.43
8 -10.43
9 -48.89
10 -7.41
11 27.16
12 -29.19
13 -4.64
最佳化斷面後分析桿件應力
桿件編號 桿件應力 (ksi)
14 4.77
15 7.01
16 6.64
17 23.88
18 9.18
19 -23.19
20 -8.61
21 9.18
22 -8.61
23 -23.19
24 6.64
25 7.01
26 23.88
案例三分析
68
最佳化斷面後分析桿件應力
節點編號 X方向 (in) Y方向 (in)
1 0.234 -2.000
2 0.144 -1.778
3 0.000 0.000
4 0.000 0.000
5 -0.144 -1.778
6 -0.234 -2.000
7 0.314 -1.975
8 -0.051 -0.973
9 0.070 -0.958
10 0.000 -0.461
11 -0.070 -0.958
12 0.051 -0.973
13 -0.314 -1.975
14 0.412 -0.562
15 -0.412 -0.562
案例三分析
69
最佳化斷面後分析節點位移
 背景
 動機
 目的
 方法
 測試案例
 結論
大綱
70
結論
71
 以OpenMP運算環境為基礎,開發一多CPU平台
之平行化運算粒子群最佳化程式完成,經數值最
佳化驗證本平行演算法可行。
 編寫平行程式使用共享記憶體須注意競爭危害
 主要影響平行粒子群最佳化效能因素
粒子總數
迭代次數
目標函數維度
 GPGPU
General-purpose computing on graphics processing
units
顯示卡記憶體
 OOP
Object-oriented programming
可讀性
維護和修改
 3D桁架結構最佳化
建議與未來展望
72
 背景
平行運算
 動機
最佳化簡介、粒子群最佳化
 目的
利用多核心平行運算
 方法
平行矩陣乘法演算法、平行粒子群最佳化演算法
 測試案例
矩陣乘法、數值最佳化案例、桁架結構最佳化案例
 結論
簡報回顧
73

More Related Content

Similar to Slide

管理员必备的20个 Linux系统监控工具
管理员必备的20个 Linux系统监控工具管理员必备的20个 Linux系统监控工具
管理员必备的20个 Linux系统监控工具wensheng wei
 
SEM與Amos論文寫作班-三星統計張偉豪
SEM與Amos論文寫作班-三星統計張偉豪SEM與Amos論文寫作班-三星統計張偉豪
SEM與Amos論文寫作班-三星統計張偉豪Beckett Hsieh
 
混合存储测试结果
混合存储测试结果混合存储测试结果
混合存储测试结果skate110
 
崇越論文競賽簡報
崇越論文競賽簡報崇越論文競賽簡報
崇越論文競賽簡報Ricky Lee
 
推薦文件系統 (1)
推薦文件系統 (1)推薦文件系統 (1)
推薦文件系統 (1)景逸 王
 
It Report 2008 09 Haven
It Report 2008 09 HavenIt Report 2008 09 Haven
It Report 2008 09 Haventurnroll
 
It Report 2008 09 Haven
It Report 2008 09 HavenIt Report 2008 09 Haven
It Report 2008 09 Havenguest0e0774
 
卷積神經網路(Python+TensorFlow+Keras)
卷積神經網路(Python+TensorFlow+Keras)卷積神經網路(Python+TensorFlow+Keras)
卷積神經網路(Python+TensorFlow+Keras)Fuzhou University
 
数据库极限性能测试
数据库极限性能测试数据库极限性能测试
数据库极限性能测试helbreathszw
 
整合灰關聯分析技術與實驗設計法於再生混凝土多重品質特性綜合評估
整合灰關聯分析技術與實驗設計法於再生混凝土多重品質特性綜合評估整合灰關聯分析技術與實驗設計法於再生混凝土多重品質特性綜合評估
整合灰關聯分析技術與實驗設計法於再生混凝土多重品質特性綜合評估AlanLee
 
Infiniflash benchmark
Infiniflash benchmarkInfiniflash benchmark
Infiniflash benchmarkLouis liu
 
2013 HZAU
2013 HZAU2013 HZAU
2013 HZAULI HE
 
我对后端优化的一点想法
我对后端优化的一点想法我对后端优化的一点想法
我对后端优化的一点想法mysqlops
 
人工智慧10_卷積神經網路
人工智慧10_卷積神經網路人工智慧10_卷積神經網路
人工智慧10_卷積神經網路Fuzhou University
 
Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOpenSourceCamp
 
Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)FLASH开发者交流会
 
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)Shanda innovation institute
 

Similar to Slide (20)

管理员必备的20个 Linux系统监控工具
管理员必备的20个 Linux系统监控工具管理员必备的20个 Linux系统监控工具
管理员必备的20个 Linux系统监控工具
 
SEM與Amos論文寫作班-三星統計張偉豪
SEM與Amos論文寫作班-三星統計張偉豪SEM與Amos論文寫作班-三星統計張偉豪
SEM與Amos論文寫作班-三星統計張偉豪
 
混合存储测试结果
混合存储测试结果混合存储测试结果
混合存储测试结果
 
崇越論文競賽簡報
崇越論文競賽簡報崇越論文競賽簡報
崇越論文競賽簡報
 
推薦文件系統 (1)
推薦文件系統 (1)推薦文件系統 (1)
推薦文件系統 (1)
 
It Report 2008 09 Haven
It Report 2008 09 HavenIt Report 2008 09 Haven
It Report 2008 09 Haven
 
It Report 2008 09 Haven
It Report 2008 09 HavenIt Report 2008 09 Haven
It Report 2008 09 Haven
 
卷積神經網路(Python+TensorFlow+Keras)
卷積神經網路(Python+TensorFlow+Keras)卷積神經網路(Python+TensorFlow+Keras)
卷積神經網路(Python+TensorFlow+Keras)
 
数据库极限性能测试
数据库极限性能测试数据库极限性能测试
数据库极限性能测试
 
整合灰關聯分析技術與實驗設計法於再生混凝土多重品質特性綜合評估
整合灰關聯分析技術與實驗設計法於再生混凝土多重品質特性綜合評估整合灰關聯分析技術與實驗設計法於再生混凝土多重品質特性綜合評估
整合灰關聯分析技術與實驗設計法於再生混凝土多重品質特性綜合評估
 
Infiniflash benchmark
Infiniflash benchmarkInfiniflash benchmark
Infiniflash benchmark
 
19 cpu03
19 cpu0319 cpu03
19 cpu03
 
Ch06
Ch06Ch06
Ch06
 
Lab2
Lab2Lab2
Lab2
 
2013 HZAU
2013 HZAU2013 HZAU
2013 HZAU
 
我对后端优化的一点想法
我对后端优化的一点想法我对后端优化的一点想法
我对后端优化的一点想法
 
人工智慧10_卷積神經網路
人工智慧10_卷積神經網路人工智慧10_卷積神經網路
人工智慧10_卷積神經網路
 
Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresql
 
Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)
 
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
 

Slide