WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Parallelisieren eines C++ Shared Library Aufrufs

 

diminho
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.03.2012, 18:59     Titel: Parallelisieren eines C++ Shared Library Aufrufs
  Antworten mit Zitat      
Hallo,

ich habe Funktionen aus Matlab in eine C++ Shared Library verpackt und rufe Sie in meinem C++ Programm auf. Da ich die Laufzeit verkürzen möchte und nur einer der vier vorhandenen Prozessoren verwendet werden, will ich diesen Aufruf mit openMP parallelisieren. Dies funktioniert mit Matlab-Funktionen, die das neuronale Netz nicht aufrufen.
Verwende ich jedoch folgende Zeile in meiner Matlab-Funktion,
Code:

m(i)=sim(evalin('base','nnet'),[a;b;c]);
 

die dann in die shared library einfliesst, wird nicht mehr parallelisiert. Ich erzeuge 4 Threads, die diesen Aufruf machen.

Erste Vermutung: Alle Threads greifen gleichzeitig auf das neuronale Netz zu, das mit "load" geladen wurde. Daher habe ich 4 verschiedene Befehle erstellt, die das gleiche machen, aber auf verschiedene neuronale Netzte zugreifen. Trotzdem arbeitete nur ein Prozessor.

Hat jemand von euch eine Vermutung, woran es noch liegen könnte? Bin über jede Vermutung dankbar:)
Private Nachricht senden Benutzer-Profile anzeigen


diminho
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.03.2012, 14:42     Titel:
  Antworten mit Zitat      
Update: Ich habe vermutet, dass der Zugriff auf eine Festplatte nur nacheinander geschehen kann und es deswegen seriell anstatt parallel berechnet wird. Also habe ich ein neuronales Netz auf einem USB-Stick gespeichert und den Vorgang nochmals gestartet. Leider hat auch hier nur ein Prozessor gearbeitet.

Hat keiner eine Idee? Ich wäre auch über Vermutungen froh, die ich ausprobieren könnte.

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.