---
# System prepended metadata

title: 多處理機平行程式設計 作業4-2說明
tags: [成大多處理機平行程式設計]

---

# 多處理機平行程式設計 作業4-2說明
###### tags: `成大多處理機平行程式設計`

[ToC]

## 題目:我要加速
### 題目敘述

給定一個n 層全連接層的類神經網路，其中第 ${1}$ 層是輸入層、第 ${n}$ 層是輸出層、其它為隱藏層。第 $i$ 層具有${P_i}$ 個神經元，其中${1 ≤ i ≤ n}$。第i 層中每一個神經元都有一個連結連到第$i+1$ 層中的每一個神經元，其中${1 ≤ i < n}$。令${w^i_{j,k}}$為第 $i$ 層中第 $j$ 個神經元連結到第 $i+1$ 層中第 $k$ 個神經元的權重。令${[v^i_1v^i_2v^i_3v^i_4...]}$為第 $i$ 層中神經元的值，其中${1 ≤ i ≤ n}$。則我們可以得到如下${v^{i+1}_k = \sum^{P_i}_{j=1}w^i_{j,k}v^i_j}$，其中${1 ≤ k ≤ P_{i+1}}$。我們想要以最快的速度從輸入層得到輸出層的結果。請求出此類神經網路所需的最小乘法數。

### 輸入輸出說明
第一行只有一個數字 ${n}$ ， 代表有 ${n}$ 層全連接層的類神經網路。第二行給定一個序列${P_1P_2... P_n}$代表每一層的維度，${P_1P_2... P_n}$數字之間只以空白區隔。輸出此類神經網路所需的最小乘法數，如下面解答所示，無須換行。

資料範圍：
* $1 \leq n < 30$
* $1 < P_i < 50$

例如：
${3}$ 
${10 \space 30 \space 10}$


解答：
${600}$



<font color="#f00">注意: 1. 請使用  $pthread$ 來實作</font>

### 繳交格式

在Github上傳一個<font color="#f00">程式碼檔案以及對應的Makefile檔案</font>，程式碼檔名為 學號_hw4_2 
例如：p12345678_hw4_2.c p12345678_hw4_2.cpp都可
Makefile就叫Makefile