2012-02-16 11 views
5

¿Hay alguna manera de hacer algunos perfiles para verificar qué parte de mi código usa varios subprocesos?¿Qué parte de mi código matlab tiene múltiples subprocesos?

Tengo un código de matlab, donde lo ejecuto, puedo ver en el monitor del sistema que se utilizan varios núcleos. Pero no puedo averiguar qué parte del código es multi-hilo ...

me pregunto si el generador de perfiles puede averiguarlo, o alguna otra herramienta ...

+0

cualquier razón particular por la que le gustaría saber ? –

+0

@Ashish Eso es porque ejecuto este código en el clúster de mi laboratorio. Y necesito reservar algunos núcleos. Si mi consumo de núcleos varía con el tiempo, o reservo varios núcleos, y algunos núcleos no se utilizarán en algún momento, o reservo solo un núcleo, y mis compañeros de laboratorio no estarán satisfechos de que mis trabajos tomen tiempo de CPU de ellos. – Oli

+1

Puede usar la opción -singleCompThread en MATLAB para asegurarse de que solo usa un solo núcleo. – Edric

Respuesta

6

una manera indirecta, es la búsqueda para funciones multiproceso conocidas. Aquí está la mejor lista que conozco para eso: http://www.walkingrandomly.com/?p=1894. También tenga en cuenta que las operaciones como, a. * B, o sin (a) serán de subprocesos múltiples si a y/o son matrices suficientemente grandes.

También puede usar el generador de perfiles para reducir su espacio de búsqueda. Si la mayor parte de su código se ejecuta en subprocesos múltiples la mayor parte del tiempo, entonces donde sea que su código esté pasando más tiempo es probable que ocurra el multi-threading ....

+0

Gracias, eso ayudará mucho. +1 – Oli

Cuestiones relacionadas