www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Mathe-Software" - Mehr CPU Auslastung
Mehr CPU Auslastung < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathe-Software"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Mehr CPU Auslastung: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 11:14 Sa 09.07.2011
Autor: Matheboy18

Aufgabe
Hallo ich benütze seit einiger Zeit Maple 15. Und auf der Homepage werben sie ja damit, dass Maple 15 selbst weiß wie viel Kerne der PC hat und auch diese dementsprechen aussnützt. Ich muss für meine Abschlussarbeit in Maple programmieren. Maple lastet meinen PC aber immer nur mit ca. 12% aus.

Was kann ich machen damit z.B. alle 8 Kerne voll ausgelastet werden?
Ich hab im Internet nicht wirklich was dazu gefunden


Gruß

Matheboy18

        
Bezug
Mehr CPU Auslastung: Antwort
Status: (Antwort) fertig Status 
Datum: 11:37 Sa 09.07.2011
Autor: Event_Horizon

Hallo!

ich kenne Maple nicht, aber es gibt gewisse Dinge, die man generell beachten muß.

Mehrere CPUs gleichzeitig benutzen kann man nur, wenn sich der Code auch in mehrere teile splitten läßt, die (zumindest zeitweise) unabhängig voneinander laufen können.

Angenommen, du hast eine Liste von Zahlen, und du willst jede einzelne Zahl mit 5 multiplizieren so läßt sich das wunderbar aufteilen: Jede CPU arbeitet an einem Teil der Liste.

Wenn aber jede Zahl durch die Summe von sich selbst und der vorherigen Zahl ersetzt werden soll, läßt sich das Problem nicht parallelisieren, weil für jeden Schritt das Ergebnis aus dem vorherigen bekannt sein muß.

In normalem C ist man meist selbst dafür verantwortlich, seinen Code multiprozessorfähig zu gestalten. Bei Maple könnte ich mir schon vorstellen, daß es z.B. eine Summe von zwei komplizierten Integralen erkennt, und jedes von einer CPU berechnen läßt. Das lohnt sich aber auch nur, wenn die Integrale kompiziert genug sind, dass die Berechnung lange dauert. Denn für das Verteilen an mehrer CPUs und zusammensetzen der Resultate geht natürlich auch Zeit drauf.

Multiprozessormaschinen sind schön und gut, aber wenn die einzelnen Programme das nutzen wollen, müssen  sie auch entsprechend programmiert sein.

Daher würde ich noch nicht unbedingt davon sprichen, daß Maple hier ein Problem hat, evtl liegts eher an deinem Code.

Gibt es vielleicht irgendwo Benchmark-Code, der die leistungsfähigkeit von Maple demonstriert?






Bezug
                
Bezug
Mehr CPU Auslastung: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 12:14 Sa 09.07.2011
Autor: Matheboy18

Von der Seite hab ich das noch nie betrachtet, aber jetzt im Nachhinein ist es mir auch klar. Danke für die Antwort

Bezug
        
Bezug
Mehr CPU Auslastung: Antwort
Status: (Antwort) fertig Status 
Datum: 21:07 Di 12.07.2011
Autor: Hasenfuss

Hossa :)

Die Kerne können nur dann voll ausgelastet werden, wenn du die Berechnungen entsprechend parallelisierst. Dazu eine Beispielrechnung. Sei p der Anteil eines Programms, der sich parallel abarbeiten lässt. Dann ist (1-p) der Anteil, der seriell abgearbeitet werden muss. Wenn du n Prozessorkerne hast, kannst du den Anteil p auf diese n Prozessorkerne verteilen. Der Anteil (1-p) jedoch läuft stets linear auf nur einem Prozessor. Der Faktor, um den dein Programm gegenüber einer 1-Kern-Maschine schneller arbeitet ist daher:

[mm] $F_n=\frac{1}{(1-p)+\frac{p}{n}}$ [/mm]

Das Gemeine daran ist, dass selbst bei unendlich vielen Kernen der lineare Anteil nicht parallelisiert werden kann:

[mm] $\lim_{n\to\infty}F_n=\lim_{n\to\infty}\left(\frac{1}{(1-p)+\frac{p}{n}}\right)=\frac{1}{1-p}$ [/mm]

Selbst mit 8 (also fast "unendlich") vielen Kernen laufen deine Programme bei einer Parallelisierung von 50% nur um den Faktor 2 schneller. Bei 80% Parallelisierung um den Faktor 5, aber krieg die 80% mal hin...

Mit anderen Worten, du musst deine Programme auch so schreiben, dass sie parallel abgearbeitet werden können, um den Anteil p möglichst zu maximieren. 12% Auslastung bei 8 Kernen bedeutet ja eigentlich, dass nur 1 Kern richtig arbeitet und die anderen 7 zusehen. Das spricht für einen minimalen Anteil p in deinen Programmen. Vielleicht kannst du da ja was rausholen?

Viele Grüße

Hasenfuss

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathe-Software"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]