2012-02-16 19 views
5

Czy istnieje sposób na zrobienie profilowania, aby sprawdzić, która część mojego kodu używa kilku wątków?Która część mojego kodu MATLAB jest wielowątkowa?

Mam kod Matlab, gdzie go uruchomię, widzę na monitorze systemu, że kilka rdzeni jest używanych. Ale nie mogę dowiedzieć się, która część kodu jest wielowątkowy ...

Zastanawiam się, czy to profiler może dowiedzieć się, czy jakieś inne narzędzie ...

+0

Każdy szczególny powód, dla którego chciałbyś się dowiedzieć ? –

+0

@Ashish To dlatego, że uruchamiam ten kod w klastrze mojego laboratorium. I muszę zarezerwować kilka rdzeni. Jeśli moje zużycie rdzeni zmienia się z czasem, albo zarezerwuję kilka rdzeni, a niektóre rdzenie będą w pewnym momencie nieużywane, albo zarezerwuję tylko jeden rdzeń, a moi koledzy z laboratorium będą nieprzyjemni, że moje zadania zabierają od nich czas procesora. – Oli

+1

Możesz użyć opcji -singleCompThread do MATLAB, aby upewnić się, że używasz tylko jednego rdzenia. – Edric

Odpowiedz

6

okrągłym o sposób, jest poszukiwanie dla znanych funkcji wielowątkowych. Oto najlepsza lista, którą znam: http://www.walkingrandomly.com/?p=1894. Zauważ również, że operacje takie jak, a. * B, lub sin (a) będą wielowątkowe, jeśli a i/lub b są wystarczająco dużymi matrycami.

Możesz także użyć narzędzia profilera, aby zmniejszyć obszar wyszukiwania. Jeśli większość kodu działa przez większość czasu w trybie wielowątkowym, to tam, gdzie Twój kod spędza najwięcej czasu, najprawdopodobniej jest tam, gdzie występuje wielowątkowość ...

+0

Dziękuję, to bardzo pomoże. +1 – Oli

Powiązane problemy