2012-02-16 12 views
5

C'è un modo per fare un po 'di profilazione per verificare quale parte del mio codice utilizza più thread?Quale parte del mio codice MATLAB è multi-thread?

Ho un codice MATLAB, dove lo eseguo, posso vedere sul monitor di sistema che vengono utilizzati diversi core. Ma io non riesco a capire quale parte del codice è multi-threaded ...

mi chiedo se il profiler può trovare fuori, o qualche altro strumento ...

+0

qualsiasi motivo particolare per cui vorresti scoprire ? –

+0

@Ashish Questo perché eseguo questo codice nel cluster del mio laboratorio. E ho bisogno di prenotare alcuni core. Se il mio consumo di core varia nel tempo, o prenoto diversi core, e alcuni core saranno inutilizzati a un certo punto, o prenoto solo un core, e i miei compagni di laboratorio saranno scontenti che i miei lavori prenda il tempo di CPU da loro. – Oli

+1

È possibile utilizzare l'opzione -singleCompThread su MATLAB per assicurarsi di utilizzare solo un singolo core. – Edric

risposta

6

una rotonda modo, è quello di cercare per le note funzioni multi-thread. Ecco la lista migliore che conosco per questo: http://www.walkingrandomly.com/?p=1894. Si noti inoltre che operazioni come, a. * B, o sin (a) saranno multi-thread se a e/o b sono matrici abbastanza grandi.

È inoltre possibile utilizzare il profiler per ridurre lo spazio di ricerca. Se la maggior parte del tuo codice è in esecuzione multi-threading la maggior parte del tempo, allora ovunque il tuo codice trascorre più tempo è probabile che si verifichi il multithreading ....

+0

Grazie, sarà di grande aiuto. +1 – Oli

Problemi correlati