2011-01-15 2 views
3

Ich benutze einen Algorithmus, der eine Menge Ressourcen verbraucht und die CPU auslastet.Matlab Multiple Cores

Das Problem ist, dass es nur eine CPU verwendet.

Wie kann ich MATLAB Multithread die Berechnungen machen und mehr als 1 CPU verwenden?

+0

Sie eine Umgebung brauchen, um Multi-Core geeignet und MATLAB ist nicht sehr geeignet –

+0

Ich weiß, es möglich ist, wird die Dokumentation zu sagen, dass es ist, aber Ich konnte nicht wirklich finden, wie es geht. –

Antwort

2

Sofern Sie nicht explizit parallele Konstrukte verwenden, also explizite Parallelität verwenden oder integrierte Funktionen verwenden, die bereits für Sie parallelisiert wurden, wird Matlab auf einem Multicore-Rechner nicht schneller ausgeführt. Dieser Beitrag hat eine Liste der eingebauten Funktionen, die parallelisiert wurden, und nehmen so die Vorteile von mehreren Kernen wird:

http://www.walkingrandomly.com/?p=1894

Hier ist ein Beispiel für einen parallelen Konstrukt mit Ihren eigenen Parallelität zu rollen:

http://www.mathworks.com/matlabcentral/fileexchange/13775

+0

Das ist einfach nicht wahr. Es wird schneller auf parallelen Maschinen laufen. –

+0

@Yochai - bearbeitet, um zu klären (es läuft schneller, wenn Sie bereits parallelisierte Funktionen verwenden, andernfalls nicht). – EmeryBerger

+2

+1 Richtig, aber MATLAB selbst parallelisiert selbst grundlegende Matrixoperationen (Multiplikation, MIN, MAX, INV, SQRT, POW). Für Matrizen, die größer als 40K Elemente sind. ABER Sie haben ein schönes Beispiel gegeben, wie Sie Ihre eigenen Funktionen parallelisieren können. –