颁笔鲍平行粒子群最佳化应用於平面桁架结构最佳化设计
- 14. ? 背景
? 動機
? 目的
? 方法
?OpenMP
?粒子群最佳化
?平行運算粒子群最佳化
? 測試案例
大綱
14
- 15. Open specification for Multi-Processing
? 應用程式介面(API)
?多執行緒
?共享記憶體
? 適用性
?C/C++和Fortran
? Fork-Join模型
? 編譯器指導指令基礎(compiler directive based)
OpenMP
15
- 17. ? 兩陣列相加循序執行
? 利用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
……
- 18. ? 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
- 32. ? 背景
? 動機
? 目的
? 方法
? 測試案例
?矩陣乘法
?數值最佳化
?平面桁架結構最佳化
? 結論
大綱
32
- 33. ? 中央處理器(CPU)
?intel i5-2400 (6M Cache, up to 3.40 GHz) 四核心
? 記憶體(RAM)
?8G
? 作業系統(OS)
?Windows 7 ultimate
? 開發平台(IDE)
?Microsoft Visual Studio 2012
測試環境
33
- 36. 矩陣列行大小(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 分鐘
- 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個變數平方和之最小值
39
循序運算:23.2小時
平行運算:6.2小時
相差:17小時
粒子總數與加速比關係
- 44. 粒子總數 循序(秒) 平行(秒) 加速比
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分鐘
- 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.42
案例一分析
50
粒子總數與加速比關係
循序運算:16.96 分鐘
平行運算:4.94 分鐘
相差:12.02分鐘
- 53. 斷面編號 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%)
- 54. 迭代次數 循序(秒) 平行(秒) 加速比
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
- 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
案例二分析
57
粒子總數與加速比關係
循序運算:17.64 分鐘
平行運算: 4.98 分鐘
相差:12.66分鐘
- 60. 斷面編號 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%)
- 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
案例三分析
63
粒子總數與加速比關係
循序運算:47.20 分鐘
平行運算:12.98 分鐘
相差:34.22分鐘