SlideShare a Scribd company logo
1 of 69
CPU平行粒子群最佳化應用於
平面桁架結構最佳化設計
指導老師:洪士林 教授
學生:洪銘澤
1
 背景
平行運算
 動機
 目的
 方法
 測試案例
 結論
大綱
2
 循序程式
 平行程式
平行運算
3
待解問題
tN ‧‧‧ ‧‧‧ t2 t1 t0
處理器
指令待解問題
tN ‧‧‧ ‧‧‧ t2 t1 t0
處理器
處理器
處理器
4
國道一號泰山收費站
 節省時間
利用更多核心減少運算時間
 解決大計算量的問題
結構最佳化、模擬流體、或氣象。
 更有效率地運用硬體
核心數增加
平行運算優點
5
 背景
 動機
最佳化
 目的
 方法
 測試案例
 結論
大綱
6
最佳化
7
 最佳化早期使用梯度作為搜尋方向的根據
優點:收斂快、計算量小
缺點:容易掉入局部最佳解
最佳化
8
搜尋初始點示意圖
 又稱仿生最佳化
 常見非傳統最佳化
粒子群最佳化(PSO)
基因演算法(GA)
蟻群演算法(ACO)
模擬退火眼算法(SA)
調和搜尋演算法(HS)
禁制搜尋法(TS)
非傳統最佳化
9
 1995年由學者Eberhart和Kennedy提出粒子群最
佳化(Particle Swarm Optimization, PSO)
 模擬動物群體行為的最佳化演算法
粒子群最佳化
10
 粒子群最佳化
大量迭代次數
大量粒子搜尋
 目標函數
本身計算量
多個局部最佳解
最佳化演算法缺點
11
 背景
 動機
 目的
 方法
 測試案例
 結論
大綱
12
 妥善利用電腦硬體
利用多執行緒達到平行運算效果
 減少最佳化運算時間
測試不同計算量的目標函數
目的
13
 背景
 動機
 目的
 方法
OpenMP
粒子群最佳化
平行運算粒子群最佳化
 測試案例
大綱
14
Open specification for Multi-Processing
 應用程式介面(API)
多執行緒
共享記憶體
 適用性
C/C++和Fortran
 Fork-Join模型
 編譯器指導指令基礎(compiler directive based)
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
競爭危害輸出結果
for Directives
21
矩陣乘法在C/C++循序執行
for Directives
22
矩陣乘法在C/C++平行執行
粒子群最佳化
23
粒子群最佳化
24
流程圖
初始化族群給定每個粒子
隨機位置和速度
計算每個粒子的目標函數值
是否滿足停止條件
更新每個粒子的位置和速度
計算每個粒子的目標函數值
最佳化結果
是
否
粒子群最佳化
26
粒子群最佳化演算法
27
粒子群最佳化循序演算法
平行運算粒子群最佳化
28
初始化族群給定每個粒子
隨機位置和速度
計算每個粒子的目標函數值
是否滿足停止條件
更新每個粒子的位置和速度
計算每個粒子的目標函數值
最佳化結果
粒子群最佳化流程圖
平行運算粒子群最佳化
29
粒子群最佳化平行化演算法
平行運算粒子群最佳化
30
粒子群最佳化平行化演算法示意圖
是否滿足停止條件
更新每個粒子的位置和速度
計算每個粒子的目標函數值
0 → 1/4 1/4 → 2/4 2/4 → 3/4 3/4 → 4/4
加速比
31核心數
一般情形
理論值
加速比
 背景
 動機
 目的
 方法
 測試案例
矩陣乘法
數值最佳化
平面桁架結構最佳化
 結論
大綱
32
 中央處理器(CPU)
intel i5-2400 (6M Cache, up to 3.40 GHz) 四核心
 記憶體(RAM)
8G
 作業系統(OS)
Windows 7 ultimate
 開發平台(IDE)
Microsoft Visual Studio 2012
測試環境
33
矩陣乘法
34
矩陣乘法
35
宣告四矩陣為:ArrA, ArrB, ArrC, ArrD
給予ArrA, ArrB每個矩陣元素隨機浮點數
循序:ArrA與ArrB相乘存至ArrC
平行:ArrA與ArrB相乘存至ArrD
加總ArrC和ArrD矩陣元素相減平方和
矩陣列行大小(m*n) 循序 (秒) 平行(秒) 加速比
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
矩陣乘法
36
矩陣乘法測試結果
循序計算:77.82分鐘
平行計算:20.27分鐘
相差:57.54 分鐘
矩陣乘法
37
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個變數平方和之最小值
38
粒子總數 循序(秒) 平行(秒) 加速比
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個變數平方和之最小值
39
循序運算:23.2小時
平行運算:6.2小時
相差:17小時
粒子總數與加速比關係
30個變數平方和之最小值
40
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個變數平方和之最小值
41
0.00
5000.00
10000.00
15000.00
20000.00
25000.00
30000.00
0
229
458
687
916
1145
1374
1603
1832
2061
2290
2519
2748
2977
3206
3435
3664
3893
4122
4351
4580
4809
5038
5267
5496
5725
5954
6183
目標函數值
迭代次數
最佳化收斂情形
目標函數值:0.868
Beale's function
42
Beale's function
43
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
44
粒子總數與加速比關係
循序運算:13.03 分鐘
平行運算:3.96 分鐘
相差:9.07分鐘
Beale's function
45
3.30
0.00
0.50
1.00
1.50
2.00
2.50
3.00
3.50
0 1 2 3 4 5
加速比
log(粒子總數)
加速比與粒子數關係
Beale's function
46
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
平面桁架結構斷面最佳化
47
 10支桿件平面桁架結構
案例一分析
48
案例一分析
49
粒子總數 循序(秒) 平行(秒) 加速比
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.42
案例一分析
50
粒子總數與加速比關係
循序運算:16.96 分鐘
平行運算:4.94 分鐘
相差:12.02分鐘
案例一分析
51
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(粒子總數)
加速比與粒子數關係
案例一分析
52
0
1000
2000
3000
4000
5000
6000
7000
8000 0
167
334
501
668
835
1002
1169
1336
1503
1670
1837
2004
2171
2338
2505
2672
2839
3006
3173
3340
3507
3674
3841
4008
4175
4342
4509
4676
4843
總重(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
案例一分析
53
斷面最佳化結果
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
案例一分析
54
迭代次數與加速比關係
粒子總數:5000
 17支桿件平面桁架
案例二分析
55
案例二分析
56
粒子總數 循序(秒) 平行(秒) 加速比
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
案例二分析
57
粒子總數與加速比關係
循序運算:17.64 分鐘
平行運算: 4.98 分鐘
相差:12.66分鐘
案例二分析
58
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(粒子總數)
加速比與粒子數關係
案例二分析
59
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
案例二分析
60
-54.14 lb (-1.99%)
 26支桿件平面桁架
案例三分析
61
案例三分析
62
粒子總數 循序(秒) 平行(秒) 加速比
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
案例三分析
63
粒子總數與加速比關係
循序運算:47.20 分鐘
平行運算:12.98 分鐘
相差:34.22分鐘
案例三分析
64
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(粒子總數)
粒子總數與加速比關係
案例三分析
65
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
 背景
 動機
 目的
 方法
 測試案例
 結論
大綱
66
 妥善利用多核心平行運算可減短計算時間
 經過案例測試粒子群最佳化很適合平行運算
主要影響平行粒子群最佳化因素
粒子總數
迭代次數
目標函數維度
結論
67
 GPGPU
General-purpose computing on graphics processing
units
顯示卡記憶體
 OOP
Object-oriented programming
可讀性
維護和修改
建議與未來展望
68
 背景
平行運算
 動機
最佳化簡介、粒子群最佳化
 目的
利用多核心平行運算
 方法
平行矩陣乘法演算法、平行粒子群最佳化演算法
 測試案例
矩陣乘法、數值最佳化案例、桁架結構最佳化案例
 結論
簡報回顧
69

More Related Content

Viewers also liked

Twentyquestions
TwentyquestionsTwentyquestions
TwentyquestionsRon Genech
 
TOEIC Speaking Practice - Basic Picture Description
TOEIC Speaking Practice - Basic Picture DescriptionTOEIC Speaking Practice - Basic Picture Description
TOEIC Speaking Practice - Basic Picture DescriptionRon Genech
 
TOEIC Speaking Practice - Speculation Phrases
TOEIC Speaking Practice - Speculation PhrasesTOEIC Speaking Practice - Speculation Phrases
TOEIC Speaking Practice - Speculation PhrasesRon Genech
 

Viewers also liked (6)

Up.phrasals
Up.phrasalsUp.phrasals
Up.phrasals
 
Financial accounting
Financial accountingFinancial accounting
Financial accounting
 
Financial accounting
Financial accountingFinancial accounting
Financial accounting
 
Twentyquestions
TwentyquestionsTwentyquestions
Twentyquestions
 
TOEIC Speaking Practice - Basic Picture Description
TOEIC Speaking Practice - Basic Picture DescriptionTOEIC Speaking Practice - Basic Picture Description
TOEIC Speaking Practice - Basic Picture Description
 
TOEIC Speaking Practice - Speculation Phrases
TOEIC Speaking Practice - Speculation PhrasesTOEIC Speaking Practice - Speculation Phrases
TOEIC Speaking Practice - Speculation Phrases
 

Similar to CPU平行粒子群最佳化應用於平面桁架結構最佳化設計

設計公差與Cpk 2023.pdf
設計公差與Cpk 2023.pdf設計公差與Cpk 2023.pdf
設計公差與Cpk 2023.pdfCasey Jen
 
广告推荐训练系统的落地实践
广告推荐训练系统的落地实践广告推荐训练系统的落地实践
广告推荐训练系统的落地实践Fan Robbin
 
Performance Data Analyze
Performance Data AnalyzePerformance Data Analyze
Performance Data Analyzeanysql
 
系統程式 -- 第 10 章
系統程式 -- 第 10 章系統程式 -- 第 10 章
系統程式 -- 第 10 章鍾誠 陳鍾誠
 
Cdn调度策略优化
Cdn调度策略优化Cdn调度策略优化
Cdn调度策略优化学峰 司
 
标准化作业和精益六西格玛
标准化作业和精益六西格玛标准化作业和精益六西格玛
标准化作业和精益六西格玛William Yu
 
一次Web性能测试小结
一次Web性能测试小结一次Web性能测试小结
一次Web性能测试小结beiyu95
 
Hp刀片机测试
Hp刀片机测试Hp刀片机测试
Hp刀片机测试alex1x
 
数据库极限性能测试
数据库极限性能测试数据库极限性能测试
数据库极限性能测试helbreathszw
 
卷積神經網路(Python+TensorFlow+Keras)
卷積神經網路(Python+TensorFlow+Keras)卷積神經網路(Python+TensorFlow+Keras)
卷積神經網路(Python+TensorFlow+Keras)Fuzhou University
 
我对后端优化的一点想法
我对后端优化的一点想法我对后端优化的一点想法
我对后端优化的一点想法mysqlops
 
Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOpenSourceCamp
 
Infiniflash benchmark
Infiniflash benchmarkInfiniflash benchmark
Infiniflash benchmarkLouis liu
 
Mysql性能分析之临时表(共享)
Mysql性能分析之临时表(共享)Mysql性能分析之临时表(共享)
Mysql性能分析之临时表(共享)beiyu95
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践mysqlops
 
流程优化管理培训资料
流程优化管理培训资料流程优化管理培训资料
流程优化管理培训资料jingb
 
2.ie培訓教材
2.ie培訓教材2.ie培訓教材
2.ie培訓教材營松 林
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析areyouok
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析topgeek
 

Similar to CPU平行粒子群最佳化應用於平面桁架結構最佳化設計 (20)

第1章
第1章第1章
第1章
 
設計公差與Cpk 2023.pdf
設計公差與Cpk 2023.pdf設計公差與Cpk 2023.pdf
設計公差與Cpk 2023.pdf
 
广告推荐训练系统的落地实践
广告推荐训练系统的落地实践广告推荐训练系统的落地实践
广告推荐训练系统的落地实践
 
Performance Data Analyze
Performance Data AnalyzePerformance Data Analyze
Performance Data Analyze
 
系統程式 -- 第 10 章
系統程式 -- 第 10 章系統程式 -- 第 10 章
系統程式 -- 第 10 章
 
Cdn调度策略优化
Cdn调度策略优化Cdn调度策略优化
Cdn调度策略优化
 
标准化作业和精益六西格玛
标准化作业和精益六西格玛标准化作业和精益六西格玛
标准化作业和精益六西格玛
 
一次Web性能测试小结
一次Web性能测试小结一次Web性能测试小结
一次Web性能测试小结
 
Hp刀片机测试
Hp刀片机测试Hp刀片机测试
Hp刀片机测试
 
数据库极限性能测试
数据库极限性能测试数据库极限性能测试
数据库极限性能测试
 
卷積神經網路(Python+TensorFlow+Keras)
卷積神經網路(Python+TensorFlow+Keras)卷積神經網路(Python+TensorFlow+Keras)
卷積神經網路(Python+TensorFlow+Keras)
 
我对后端优化的一点想法
我对后端优化的一点想法我对后端优化的一点想法
我对后端优化的一点想法
 
Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresql
 
Infiniflash benchmark
Infiniflash benchmarkInfiniflash benchmark
Infiniflash benchmark
 
Mysql性能分析之临时表(共享)
Mysql性能分析之临时表(共享)Mysql性能分析之临时表(共享)
Mysql性能分析之临时表(共享)
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
 
流程优化管理培训资料
流程优化管理培训资料流程优化管理培训资料
流程优化管理培训资料
 
2.ie培訓教材
2.ie培訓教材2.ie培訓教材
2.ie培訓教材
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析
 

CPU平行粒子群最佳化應用於平面桁架結構最佳化設計