日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用性能测试工具TAU测试MPI程序记录

發布時間:2024/1/1 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用性能测试工具TAU测试MPI程序记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

最近又重新把性能測試給撿起來了。所以決定再重新使用TAU(Tuning and Analysis Utilities )來做一些性能測試。測試的程序主要是組里一個師兄開發的基因組裝程序,使用MPI+C++編寫的。對于MPI的程序,當下來說最好的測試工具就是TAU了。
因為這一篇博客主要是對測試過程做一個簡單的記錄,所以關于TAU的安裝過程、原理介紹等,大家可以在去查看相關的論文。

測試過程

1. 動態插樁(Dynamic instrumentation)

在mpirun的命令中插入一個tau_exec,實現動態插樁。
普通的MPI運行命令。后面是一系列程序運行的參數:

> mpirun -np 8 ./swap -k 19 -c 5 -i ./data/S.aureus.fasta -o Saur_k19_c5

加了tau_exec之后的運行命令:

> mpirun -np 8 tau_exec ./swap -k 19 -c 5 -i ./data/S.aureus.fasta -o Saur_k19_c5

接著目錄下會多了幾個類似于profile.0.0.0的文件。直接在當前目錄下執行pprof命令:

> pprof

顯示結果如下圖所示:

這種方法只能夠查看到MPI的函數調用情況,并不能看到用戶的自定義函數的調用情況。因此不太推薦這種插樁方法。

2. 源碼插樁(Source instrumentation)

直接在源碼中進行插樁。
首先,要選擇我們想要借助TAU獲得的信息(e.g. MPI support, tracing, CUDA hardware counters, etc)。我們要將TAU_MAKEFILE變量設置為相應的pdt。因為我們現在使用TAU來測MPI程序的信息,因此將TAU_MAKEFILE變量設為tau-mpi-pdt:

> export TAU_MAKEFILE=$TAU_HOME/lib/Makefile.tau-mpi-pdt

接著,使用tau_cc.sh或者tau_cxx.sh而不是使用mpicc或者mpicxx來編譯cpp文件。以下代碼是從別處抄來的,因為我測的這個程序使用MakeFile文件來進行編譯的,我就直接在MakeFile文件中進行修改,將mpicxx替換成tau_cxx.sh。

> tau_cxx.sh wave2d.cpp -o wave2d

編譯完成后,還是使用mpirun運行:

> mpirun -np 4 tau_exec ./swap -k 19 -c 5 -i ./data/S.aureus.fasta -o Saur_k19_c5

接著就是使用各種可視化工具來對性能測試的數據進行可視化。pprof是一個基于文本的可視化工具。先使用pprof試試:

> pprof

可以看出確實多了很多用戶自定義函數的執行情況,而不是只限于MPI函數。但是可能是因為沒有解析出來的緣故,很多函數都只是給出了地址,而沒有給出函數名字。

另外一種可視化工具Paraprof,提供圖形化界面。

> paraprof

主要是顯示四個節點(因為MPI執行時設定的參數就是4)上函數執行時間的情況。

3. 基于編譯器的插樁(Compiler-based instrumentation)和可選擇代碼區域的插樁(Selective instrumentation

基于編譯器的插樁介于Source和Dynamic之間。而選擇代碼區域的插樁大致就是在代碼中指定一塊區域。兩個我都沒怎么使用過,就不介紹了。文檔中還是推薦使用源碼(Source)插樁。

結尾

暫時主要就是這些內容,以后遇到新的內容我再進行更新。謝謝觀看!

總結

以上是生活随笔為你收集整理的使用性能测试工具TAU测试MPI程序记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。