資料介紹
描述
Spresense 質數計算器
Spresense 素數計算器實現了一種可以同時在多個 Spresense CPU 內核上運行的素數計算算法。
Spresense CXD5602GG 芯片有六個 ARM Cortex M4 內核。在此項目中,您將能夠輕松決定在進行素數計算時將使用多少個 CPU 內核。測量計算所花費的時間,然后與進行相同計算但僅使用一個內核所花費的時間進行比較。它是一種基準應用程序,用戶可以在其中進行各種設置并觀察結果。
Spresense 主板足以完成此項目,但如果將其連接到 Spresense 擴展板,則沒有任何區別。
先決條件
- Ubuntu PC(Spresense Full SDK 需要)。
描述
默認情況下,Spresense 素數計算器將在一組預定義的參數上運行。
參數是:
- 要使用的 CPU 數量。[1-5] 默認值:5。
- 搜索素數的數字范圍。[1-“千”] 默認值:15000。
該應用程序將在命令行中指定的盡可能多的內核上啟動并啟動素數計算器算法的實例。如果未指定核心數,則將使用默認值。
然后每個實例都會收到一條消息,其中包含起始值和要通過質數計算器運行的范圍長度。范圍的長度與數字范圍相同。這意味著將計算的總范圍將是number range x number of CPUs 。
結果是什么意思?
結果基本上只是一個數字,說明完成任務需要多長時間。作為參考,這里是為 Arduino UNO 移植的代碼。
劇透警告!在范圍為 0-2000 個數字的 Arduino UNO 上進行的初始測試需要 10916 毫秒才能找到 303 個素數。在五個內核上運行的 Spresense 上的相同范圍需要 9 毫秒,而在一個 Spresense 內核上運行需要 27 毫秒。
uint32_t find_primes(uint32_t start_val, uint32_t limit) {
uint32_t primes = 0;
for (; start_val <= limit; start_val++) {
int x = 2;
while (x <= start_val) {
if (start_val % x == 0)
break;
x++;
}
if (x == start_val)
primes++;
}
return primes;
}
#define RANGE 5000
void setup() {
uint32_t primes = 0;
uint32_t range = RANGE;
unsigned long start_time, end_time, difference_time;
// put your setup code here, to run once:
Serial.begin(115200);
Serial.print("Starting Prime calculation on Arduino Uno.\nRange from 0 - ");
Serial.println(range, DEC);
start_time = millis();
primes = find_primes(0, RANGE);
end_time = millis();
difference_time = end_time - start_time;
Serial.print("Found: ");
Serial.print(primes);
Serial.print(" primes in: ");
Serial.print(difference_time);
Serial.println(" ms.");
}
void loop() {
// put your main code here, to run repeatedly:
}
上圖:Arduino UNO 的代碼。
分步說明:
1. 按照先決條件步驟為您的 Ubuntu 計算機準備運行 Spresense Full SDK 所需的工具。
2.克隆已經實現素數計算器的分叉存儲庫:
$ git clone --recursive git@github.com:TE-KarlKomierowski/spresense.git
3.配置和構建Spresense Full SDK:
$ cd spresense/sdk
$ tools/config.py --kernel release
$ tools/config.py examples/prime
$ make buildkernel
$ make
4. 構建完成后,將在SDK 文件夾中創建一個名為nuttx.spk的文件。
5. 這個文件必須燒寫到Spresense板子上。您可以通過使用“-b”開關編輯波特率來提高閃爍速度。默認值為 115200。如果您嘗試最快的速度并發現速度不佳,請嘗試降低速度。
$ tools/flash.sh nuttx.spk
or
#Maximum flashing speed is 1152000, default is 115200.
$ tools/flash.sh -b 1152000 nuttx.spk
6. 閃爍完成后,使用以下設置啟動您最喜歡的串行終端,只需仔細檢查設備是否正確。
+-----------------------------------------------------------------------+
| A - Serial Device : /dev/ttyUSB0 |
| B - Lockfile Location : /var/lock |
| C - Callin Program : |
| D - Callout Program : |
| E - Bps/Par/Bits : 115200 8N1 |
| F - Hardware Flow Control : No |
| G - Software Flow Control : No |
| |
| Change which setting? |
+-----------------------------------------------------------------------+
7. 你的終端應該是這樣的:
NuttShell (NSH) NuttX-7.22
nsh>
8. 這是 NuttShell。從這里您可以通過簡單地輸入“prime”來啟動 prime 計算器。然后素數計算器將從默認值開始。
Synopsis:
prime
[N_CPUS] [RANGE]
以下示例將使用 4 個 CPU 內核啟動應用程序,其中每個內核計算一個范圍,每個范圍包含 1000 個值。
NuttShell (NSH) NuttX-7.22
nsh> prime 4 1000
9. 按回車鍵,看看在不同數量的核心上運行各種范圍長度時會得到什么結果。
享受!:)
?
?
?
- Spresense GPS攝像頭開源分享
- labview計算器 24次下載
- 卡西歐計算器外部存儲器開源
- 高級計算器開源分享
- Arduino計算器開源分享
- Spresense智能浮標開源分享
- 計算器labview實現的課程實驗報告 27次下載
- 電阻衰減網絡計算器設計與實現 22次下載
- 西門子PLC地址計算器軟件Modbus下載 19次下載
- 編程簡易計算器制作資料合集包括源程序和計算器仿真圖免費下載 54次下載
- 簡易計算器設計與制作 88次下載
- tenda pin碼計算器下載 1.0綠色版 0次下載
- 色環電阻計算器的使用 22次下載
- DEs計算器 8次下載
- 子網掩碼計算器 3次下載
- AWTK 開源串口屏開發(13) - 計算器應用 4866次閱讀
- DS1086L的頻率計算器 664次閱讀
- 封裝熱分析計算器教程 895次閱讀
- ADC/DAC精度計算器教程 953次閱讀
- TS語言開發HarmonyOS應用:分布式計算器開發教程 2467次閱讀
- 基于STM32設計的計算器(實現基本運算) 7870次閱讀
- 如何使用封裝熱分析計算器(PTA)的簡短指南 2808次閱讀
- 計算器的結構組成及故障處理方法 1.2w次閱讀
- 微軟標志性的Windows計算器正式宣布開源啦! 3185次閱讀
- 索尼Spresense拆箱與Spresense SDK運行測試 8284次閱讀
- 用FPGA設計計算器 9238次閱讀
- 如何用VB編寫最簡單的計算器程序 5.1w次閱讀
- AT89S52單片機實現簡易計算器(C語言程序) 3.1w次閱讀
- 基于AT89C51單片機的十進制計算器系統設計 6353次閱讀
- 交流瓦特計算器 3476次閱讀
下載排行
本周
- 1普中科技HC6800-EM3使用操作手冊
- 21.69 MB | 3次下載 | 2 積分
- 2PL4807單節鋰離子電池充電器中文手冊
- 1.36 MB | 2次下載 | 免費
- 3智能小車proteus仿真+C源程序
- 0.02 MB | 1次下載 | 免費
- 4TMR技術在電流傳感器中的應用
- 616.47 KB | 1次下載 | 免費
- 5開關電源設計原理手冊
- 1.83 MB | 1次下載 | 免費
- 6BQ769142技術參考手冊
- 2.99MB | 1次下載 | 免費
- 7CBM8605_8606_8608-運算放大器【中文排版】-202406271735
- 2.70 MB | 1次下載 | 免費
- 801-07-06-CBM8655_CBM8656精密運算放大器
- 4.49 MB | 1次下載 | 免費
本月
- 1XL4015+LM358恒壓恒流電路圖
- 0.38 MB | 154次下載 | 1 積分
- 2PCB布線和布局電路設計規則
- 0.40 MB | 35次下載 | 免費
- 3智能門鎖原理圖
- 0.39 MB | 13次下載 | 免費
- 4GB/T4706.1-2024 家用和類似用途電器的安全第1部分:通用要求
- 7.43 MB | 11次下載 | 1 積分
- 5JESD79-5C_v1.30-2024 內存技術規范
- 2.71 MB | 10次下載 | 免費
- 6elmo直線電機驅動調試細則
- 4.76 MB | 9次下載 | 6 積分
- 7WIFI智能音箱原理圖完整版
- 0.09 MB | 7次下載 | 10 積分
- 8PC1013三合一快充數據線充電芯片介紹
- 1.03 MB | 7次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935115次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183333次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73806次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評論
查看更多