更快速的故障隔離、改進(jìn)的內(nèi)存優(yōu)化和針對(duì)您的大規(guī)模HPC應(yīng)用程序的動(dòng)態(tài)可視化
了解大規(guī)模并行和多核應(yīng)用程序,對(duì)進(jìn)程和線程執(zhí)行進(jìn)行前所未有的控制,并了解程序狀態(tài)和數(shù)據(jù)。
使用TotalView for HPC,在單個(gè)窗口中同時(shí)調(diào)試多個(gè)進(jìn)程和線程,以完全控制程序的執(zhí)行:在單個(gè)線程或任意進(jìn)程或線程組內(nèi)逐行運(yùn)行、單步執(zhí)行和暫停代碼。通過(guò)反向調(diào)試從失敗中向后工作,通過(guò)消除應(yīng)用程序的重復(fù)重新啟動(dòng)更快地隔離根本原因。重現(xiàn)在使用線程、OpenMP、MPI、GPU或協(xié)處理器的并發(fā)程序中出現(xiàn)的困難問(wèn)題。
內(nèi)存泄漏、死鎖和競(jìng)爭(zhēng)條件都可能是過(guò)去的事情。無(wú)論是經(jīng)驗(yàn)豐富的開(kāi)發(fā)人員還是剛接觸到多核或并行應(yīng)用程序的開(kāi)發(fā)挑戰(zhàn)的新手,TotalView都能快速發(fā)現(xiàn)錯(cuò)誤、驗(yàn)證原型、驗(yàn)證計(jì)算并驗(yàn)證代碼的正確性。
TotalView與C、C++和Fortran應(yīng)用程序一起編寫(xiě)Linux(包括Cray和Blue Gene平臺(tái))、LinuxPowerLE、UNIX、Mac OS X和Xeon PHI,支持OpenMP、MPI、OpenPOWER、OpenACC/CUDA和ARM。
TotalView for HPC的功能
為您的團(tuán)隊(duì)選擇合適的動(dòng)態(tài)分析工具取決于您的團(tuán)隊(duì)需求、語(yǔ)言支持和平臺(tái)可用性。
TotalView支持以下關(guān)鍵技術(shù):
筆記本電腦到超級(jí)計(jì)算機(jī):筆記本電腦、工作站、服務(wù)器、部門集群和超級(jí)計(jì)算機(jī)
C和C++:模板和標(biāo)準(zhǔn)模板庫(kù)的全面支持
Fortran:包括通用塊和模塊等概念
帶MPI的多進(jìn)程:支持20種不同的MPI實(shí)現(xiàn)
多線程進(jìn)程:使用pthreads、OpenMP、TBB調(diào)試多線程應(yīng)用程序
Xeon Phi:支持調(diào)試Intel Xeon Phi(KNC, KNL)
OpenPOWER Linux PowerLE:支持在OpenPower LittleEndian平臺(tái)上進(jìn)行調(diào)試
加速器支持:使用CUDA或OpenAcc來(lái)利用NVIDIA GPU的調(diào)試程序
ARM64支持
混合語(yǔ)言Python-C/C++支持:用Python和C/C++ Python擴(kuò)展調(diào)試程序
TotalView提供了強(qiáng)大的功能,使調(diào)試盡可能簡(jiǎn)單。
數(shù)據(jù)可視化:程序數(shù)據(jù)和變量的可視性
類型轉(zhuǎn)換:將自定義數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為更簡(jiǎn)單的形式進(jìn)行調(diào)試
高級(jí)內(nèi)存調(diào)試:在C、C++、Fortran和HPC應(yīng)用程序中查找內(nèi)存泄漏和內(nèi)存錯(cuò)誤
評(píng)估點(diǎn):評(píng)估表達(dá)式,使其不僅僅是查看數(shù)據(jù)值
TVScript:無(wú)人參與的批調(diào)試:在非交互式調(diào)試會(huì)話中運(yùn)行和測(cè)試應(yīng)用程序
反向調(diào)試:記錄和重放、調(diào)試Linux應(yīng)用程序中的競(jìng)爭(zhēng)條件和死鎖
遠(yuǎn)程顯示:從Linux、Mac OS X或Windows系統(tǒng)輕松設(shè)置遠(yuǎn)程調(diào)試會(huì)話

C與C++調(diào)試及故障排除
C和C++可以控制數(shù)據(jù)、訪問(wèn)模式、內(nèi)存管理和執(zhí)行的細(xì)節(jié)。但是,當(dāng)涉及到構(gòu)建和維護(hù)可擴(kuò)展的科學(xué)應(yīng)用程序時(shí),對(duì)低級(jí)機(jī)器行為的直接控制幾乎不會(huì)留下誤差。TooVIEW為復(fù)雜C和C++應(yīng)用程序的故障排除提供了理想的環(huán)境。它們具有對(duì)象、數(shù)據(jù)結(jié)構(gòu)和指針的詳細(xì)視圖,簡(jiǎn)化了對(duì)復(fù)雜對(duì)象的處理。
標(biāo)準(zhǔn)模板庫(kù)(STL)集合類簡(jiǎn)化了操作程序數(shù)據(jù)的方式,但在程序掛起或崩潰時(shí),它們會(huì)使故障排除變得復(fù)雜。TotalView類型轉(zhuǎn)換工具(TTF)為您提供了一種靈活的方式來(lái)為數(shù)據(jù)對(duì)象提供備用顯示。STLView轉(zhuǎn)換提供了STL集合類對(duì)象的邏輯視圖,提供了更實(shí)用的列表數(shù)據(jù)視圖。最終結(jié)果是對(duì)代碼的結(jié)構(gòu)和行為進(jìn)行了簡(jiǎn)化、直觀的查看。
用Python和C/C++進(jìn)行混合語(yǔ)言調(diào)試
許多開(kāi)發(fā)人員利用Python的能力來(lái)開(kāi)發(fā)應(yīng)用程序,并調(diào)用C/C++代碼來(lái)執(zhí)行計(jì)算密集型任務(wù)或訪問(wèn)現(xiàn)有算法??缯Z(yǔ)言障礙的調(diào)試可能是有挑戰(zhàn)性的,但是代碼動(dòng)態(tài)顯示通過(guò)跨語(yǔ)言障礙的完全集成的調(diào)用堆棧,并允許所有的Python和C/C++變量及其值被檢查,這很容易。沒(méi)有其他的調(diào)試器讓你很容易理解、診斷和修復(fù)混合語(yǔ)言Python和C/C++應(yīng)用程序!
Fortran調(diào)試
雖然C和Fortran都有一些共同點(diǎn),但Fortran不是C。TotalView正確地表示了Fortran符號(hào)、類型和概念,如通用塊和模塊,這些在其他語(yǔ)言中不存在。
Fortran特別擅長(zhǎng)表示和處理數(shù)值和數(shù)學(xué)數(shù)據(jù)。它的一個(gè)關(guān)鍵特性是它能夠表示數(shù)組數(shù)據(jù)。使用Fortran源代碼的科學(xué)家和工程師在一定程度上利用了對(duì)多維數(shù)組、數(shù)組分配和Fortran指針強(qiáng)大功能等的語(yǔ)言級(jí)支持。我們的技術(shù)可以幫助您利用Fortran的這些關(guān)鍵屬性來(lái)確保代碼正常工作。
用于理解應(yīng)用程序行為、計(jì)算數(shù)據(jù)和模式的數(shù)據(jù)可視化
您正在開(kāi)發(fā)的大多數(shù)應(yīng)用程序都是處理數(shù)據(jù)的引擎。無(wú)論是觀察還是計(jì)算,這都是你真正關(guān)心的數(shù)據(jù)。當(dāng)你試圖深入了解物理系統(tǒng)的行為時(shí),你可以定量地接近它。當(dāng)試圖理解計(jì)算系統(tǒng)的行為時(shí),同樣的方法是必要的。
故障排除包括探索活動(dòng)應(yīng)用程序的行為,尋找關(guān)于為什么計(jì)算沒(méi)有按預(yù)期進(jìn)行的線索,對(duì)以不同方式呈現(xiàn)的數(shù)據(jù)進(jìn)行切片以發(fā)現(xiàn)模式。重要的是,您擁有能夠輕松查看和操作數(shù)據(jù)的工具,而TotalView有助于簡(jiǎn)化此過(guò)程。
調(diào)試內(nèi)存泄漏和malloc錯(cuò)誤
內(nèi)存是一個(gè)有限的資源這一事實(shí)對(duì)應(yīng)用程序的實(shí)現(xiàn)有著重大的影響,特別是當(dāng)它包含數(shù)百萬(wàn)行代碼時(shí)。隨著程序復(fù)雜性的增加,內(nèi)存泄漏調(diào)試和malloc錯(cuò)誤的故障排除變得更加困難。內(nèi)存相關(guān)的代碼缺陷可能導(dǎo)致失控的資源和隨機(jī)數(shù)據(jù)損壞。內(nèi)存錯(cuò)誤也可能表現(xiàn)為隨機(jī)程序崩潰,對(duì)生產(chǎn)力造成負(fù)面影響。在最壞的情況下,內(nèi)存錯(cuò)誤會(huì)導(dǎo)致數(shù)據(jù)損壞,導(dǎo)致程序生成不準(zhǔn)確的結(jié)果。TotalView通過(guò)確保工作代碼和準(zhǔn)確的結(jié)果幫助您管理風(fēng)險(xiǎn)。
支持MPI、OpenMP和其他并行范例
TotalView為MPI、OpenMP、UPC和GA提供全面的支持。TotalView支持20多個(gè)MPI實(shí)現(xiàn),是并行編程課程中的首選調(diào)試器。
多線程應(yīng)用程序/多核架構(gòu)
提高時(shí)鐘頻率的時(shí)代已經(jīng)結(jié)束。處理器體系結(jié)構(gòu)具有多核和多核設(shè)計(jì)的特點(diǎn)。構(gòu)建多線程應(yīng)用程序或?qū)⒋袘?yīng)用程序轉(zhuǎn)換為并行應(yīng)用程序是一個(gè)重大挑戰(zhàn)。TotalView和ReplayEngine是為幫助您管理并發(fā)性、并行性和線程所帶來(lái)的挑戰(zhàn)而構(gòu)建的。
即使在測(cè)試良好的多線程應(yīng)用程序中,爭(zhēng)用條件也是一個(gè)常見(jiàn)問(wèn)題。您可以使用鎖、信號(hào)量和原子操作來(lái)避免競(jìng)爭(zhēng)條件,但它們可以引入自己的微妙問(wèn)題。我們的工具提供了代碼行為的可視性,提高了您對(duì)這些問(wèn)題影響的理解。
使用TVScript進(jìn)行無(wú)人值守批調(diào)試
TVScript是一個(gè)使用TotalView進(jìn)行非交互式調(diào)試的框架。定義目標(biāo)程序中可能發(fā)生的一系列事件,TVScript在其控制下加載程序,根據(jù)需要設(shè)置斷點(diǎn),然后運(yùn)行程序。在每個(gè)程序停止時(shí),TVScript都會(huì)收集記錄到一組輸出文件中的數(shù)據(jù),以便在作業(yè)完成后進(jìn)行查看。如果調(diào)用沒(méi)有參數(shù)的TVScript,它將提供使用指南和可用事件和操作的列表。TVScript被比作類固醇的printf。
加速器支持
Linux x86-64上的TotalView支持CUDA和OpenAcc調(diào)試:
CUDA支持的版本8.0、9.0–9.2和10.0
在同一會(huì)話中調(diào)試主機(jī)和設(shè)備代碼
CUDA直接在Tesla, Kepler, Maxwell或Fermi硬件上運(yùn)行
多GPU調(diào)試支持
在TotalView的新用戶界面和經(jīng)典用戶界面中都支持CUDA調(diào)試
CUDA動(dòng)態(tài)并行
CUDA統(tǒng)一內(nèi)存
Linux和GPU設(shè)備線程可見(jiàn)性
對(duì)分層設(shè)備、塊和線程內(nèi)存的完全可見(jiàn)性
通過(guò)邏輯和設(shè)備坐標(biāo)導(dǎo)航設(shè)備線程
CUDA函數(shù)調(diào)用、主機(jī)固定內(nèi)存區(qū)域和CUDA上下文
處理內(nèi)聯(lián)和堆棧上的CUDA函數(shù)
用于CUDA功能的命令行界面(CLI)命令
同時(shí)使用多個(gè)NVIDIA設(shè)備的應(yīng)用程序
CUDA加速集群上的MPI應(yīng)用程序
統(tǒng)一的虛擬尋址和GPUDirect
CUDA C++和內(nèi)聯(lián)PTX
報(bào)告內(nèi)存錯(cuò)誤并處理CUDA異常
完全支持PGI和Cray CCE編譯器編譯的OpenACC指令
CUDA動(dòng)態(tài)模式程序的兼容性
調(diào)試CUDA核心文件
京ICP備09015132號(hào)-996 | 違法和不良信息舉報(bào)電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號(hào)豪柏大廈C2座11層1105室
北京哲想軟件集團(tuán)旗下網(wǎng)站:哲想軟件 | 哲想動(dòng)畫(huà)