Die Mathe-Redaktion - 23.06.2018 19:50 - Registrieren/Login
/TABLE>
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
ListenpunktSchwätz / Top 15
ListenpunktWerde Mathe-Millionär!
ListenpunktAnmeldung MPCT Juli
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 242 Gäste und 18 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
 
Suchwörter   (werden UND-verknüpft)
Keines der folgenden   keine eigenen Beiträge
Name des Autors 
nur die Themen
Forum 
 Suchrichtung  Auf  Ab Suchmethode  Sendezeit Empfehlungbeta [?]
       Die Suche erfolgt nach den angegebenen Worten oder Wortteilen.   [Suchtipps]

Link auf dieses Suchergebnis hier

Forum
Thema Eingetragen
Autor

Programmieren
Beruf 
Thema eröffnet von: milch
C: Ist Größenvergleich langsamer als zu prüfen, ob Zahl ungerade ist mit binärem Operator?  
Beitrag No.3 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2017-04-05
milch
 
\(\begingroup\)
2017-04-05 10:23 - Kitaktus in Beitrag No. 2 schreibt:
Probiere es doch einfach aus.

Das habe ich natürlich auch vor, ich wollte mir das Problem in den kommenden Tagen mal genauer anschauen, wollte aber im Vorfeld schonmal Meinungen einholten.

2017-04-05 10:23 - Kitaktus in Beitrag No. 2 schreibt:
In Matlab braucht die Abfrage "mod(n,2)==1" (inklusive des Zählens) etwa zweieinhalbmal so lange wie "n<5".
Absolut beträgt der Unterschied aber nur 17ms bei einer Millionen Abfragen.

Das hört sich doch schonmal sehr gut an, danke.
\(\endgroup\)

Programmieren
Beruf 
Thema eröffnet von: milch
C: Ist Größenvergleich langsamer als zu prüfen, ob Zahl ungerade ist mit binärem Operator?  
Themenstart
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2017-04-04
milch
 
\(\begingroup\)
Hi,
ich würde gerne wissen welche der beiden Operationen in einem C-Programm schneller ist.

Es geht um die Auswertung eines Integer Arrays (die Länge beträgt hier jetzt mal 9).

Variante 1:
C
if (1&(n)) incr++;

Variante 2:
C
if (n<5) incr++;

Es geht hier um die Auswertung einer binären Eigenschaft, im Prinzip um das prüfen eines Erhaltungssatzes.
n ist hier ein Index (eigentlich nur ein Teil davon aber das spielt hier keine Rolle), normalerweise, kann ich das Grundproblem im Vorfeld so beeinflussen, dass ich alle Objekte einer viel größeren Menge so plaziere, dass alle Objekte welche die Eigenschaft (+) haben auf den geraden und alle Objekte welche die Eigenschaft (-) haben auf den ungeraden Plätzen verteile. Wenn ich jetzt prüfen will ob ich gleich viele Objekte mit (+) und (-) habe, dann zähle ich nur die geraden und wenn dies dann der hälfte der Gesamtzahl entspricht ist der Erhaltungssatz durch die Objektmenge erfüllt. Das wäre also die Variante 1 und sie funktioniert eigentlich super.

Jetzt habe ich haber das Problem, dass die grundlegende Situation es nicht hergibt, diese Eigenschaft auf den Index n abzubilden, d.h. es gibt im Vorfeld mehr Objekte mit der Eigenschaft (+) als Objekte mit der Eigenschaft (-) (also deutlich mehr, also nur 1 Objekt mehr), weshalb ich den Erhaltungssatz anders prüfen muss.
Daher die Variante 2, ich indiziere die Objekte einfach der Reihe nach und zwar so, dass ich zuerst die Objekte mit der Eigenschaft (+) indiziere und dann erst die anderen. Die Überlegung in Variante zwar ist also die, die Objekte zu zählen die unterhalb des Grenzindexes liegen (das wären dann die mit Eigenschaft (+)).

Das würde auch funktionieren, ist aber vermutlich deutlich langsamer als Variante 1, oder?
Gibt es hier Alternativen?

\(\endgroup\)

Dynamik der Punktmassensysteme
Universität/Hochschule 
Thema eröffnet von: Lambda88
Umgekehrte Raketengleichung  
Beitrag No.2 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2017-02-07
milch
 
\(\begingroup\)
Hi,
ich denke das Argument ist falsch. Ich finde die Rechnung ohnehin ziemlich haarsträubend, aber wenn man das so macht, dann kann man eher argumentieren, dass das Produkt aus zwei (infinitessimal kleinen) Größen hier schon in der Gleichung für dp vernachlässigt werden kann, es handelt sich hier einfach um eine ganze andere Größenordnung als bei den restlichen Termen.

Der Autor scheint das aber selbst nicht so genau zu wissen, der Grund weshalb er den Term loswerden wollte, liegt einfach daran, das er nicht weiß  wie dMdv/dt sonnst auszuwerten wäre, also hat er sich da einfach was zurecht gebogen! Wie gesagt, dass vorgehen ist ziemlich hart an der Grenze.
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
C/C++: Prekompiler Direktiven - Wie Prüfen ob Wert nicht-definiert oder == 0 gesetzt?  
Beitrag No.10 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2016-02-22
milch
J
\(\begingroup\)
Ahh ok, danke.
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
C/C++: Prekompiler Direktiven - Wie Prüfen ob Wert nicht-definiert oder == 0 gesetzt?  
Beitrag No.8 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2016-02-22
milch
J
\(\begingroup\)
Ok wenn ich das richtig verstehe: Wenn eine Variable nicht definiert wurde aber irgendwo mittels #if abgeprüft wird, dann wird diese am Ende definiert und auf 0 gesetzt?

Dann passt das natürlich, danke dafür.
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
C/C++: Prekompiler Direktiven - Wie Prüfen ob Wert nicht-definiert oder == 0 gesetzt?  
Beitrag No.6 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2016-02-22
milch
J
\(\begingroup\)
2016-02-22 14:29 - ligning in Beitrag No. 3 schreibt:
Hallo,

einfach
C
#if !WEGLASSEN
  /* ... */
#endif
sollte eigentlich auch funktionieren.

Wenn das sicher funktioniert wäre das natürlich die Ideallösung.
Wenn der Wert explizit auf 0 gesetzt wird, funktioniert das sicher, aber auch wenn sie gar nicht definiert ist?
Ich kenne mich mit den Stringenz des Precompilers nicht aus, deshalb frage ich.
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
C/C++: Prekompiler Direktiven - Wie Prüfen ob Wert nicht-definiert oder == 0 gesetzt?  
Beitrag No.5 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2016-02-22
milch
J
\(\begingroup\)
2016-02-22 14:54 - DerEinfaeltige in Beitrag No. 4 schreibt:
2016-02-22 14:02 - milch in Beitrag No. 2 schreibt:
Meinst du
#define WEGLASSEN 0
//#define WEGLASSEN 1
 
 
#if !defined WEGLASSEN || (WEGLASSEN == 0)
 
 
//TODO
 
#endif


Da verstehe ich den Sinn nicht.
Diese if-Abfrage wird immer ausgeführt, da immer wahr.


Der Normalfall ist aber:
#define WEGLASSEN 1
 
#if !defined WEGLASSEN || (WEGLASSEN == 0)
 
 
//TODO
 
#endif

dann wird der Code übersprungen, jetzt können die Nutzer aber sagen ich will den Part doch haben und kommentieren die Zeile dann einfach aus, oder sie setzten es auf 0. (der Name WEGLASSEN ist hier vielleicht irreführend)
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
C/C++: Prekompiler Direktiven - Wie Prüfen ob Wert nicht-definiert oder == 0 gesetzt?  
Beitrag No.2 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2016-02-22
milch
J
\(\begingroup\)
Meinst du
#define WEGLASSEN 0
//#define WEGLASSEN 1
 
 
#if !defined WEGLASSEN || (WEGLASSEN == 0)
 
 
//TODO
 
#endif
Es geht mir um das == 1, dass ich auf == 0 geändert habe.

Dann kann ich das ja auch so kombinieren oder?

#if !defined WEGLASSEN || (WEGLASSEN == 0) || !defined WEGLASSEN2 || (WEGLASSEN2 == 0)
 
 
//TODO
 
#endif

Denn ich möchte am Ende prüfen ob einer der Variablen nicht gesetzt oder Null ist, es reicht mir also wenn nur eine nicht definiert ist.
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
C/C++: Prekompiler Direktiven - Wie Prüfen ob Wert nicht-definiert oder == 0 gesetzt?  
Themenstart
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2016-02-22
milch
J
\(\begingroup\)
Hallo,

ich möchte in einem C++ Programm-Quellcode bestimmte Codeabschnitte nur dann mitkompilieren wenn eine bestimmte Variable bzw. eine Direktive entweder nicht definiert ist (also auskommentiert ist) oder auf den Wert 0 gesetzt ist.
Da ich leider nicht kontrollieren kann ob die User auskommentieren oder Null setzen will ich beide Fälle aufeinmal abhandelt, ich bin mir aber nicht sicher wie ich das am besten mache.

Hier mein Beispiel:
C
#define WEGLASSEN 1
 
#if (WEGLASSEN == 0)
    // Code
#endif
 
#ifndef WEGLASSEN
    // Code
#endif

Kann ich das beides Kombinieren?
Im umgekehrten Fall, also wenn ich einen Abschnitt nur dann enbeziehen will wenn eine Direktive != 0 gesetzt ist oder definiert ist, funktioniert ja soetwas:
C
#if (FLAG > 0)
    // Code
#endif
Das würde also auch mit nicht definierten Werten klarkommen, aber umgekehrt? Wird eine nicht definierte Variable von #if als == 0 erkannt, vermutlich nicht oder?

Wie sieht es außerdem mit ODER Verknüpfungen aus? Ich würde nämlich gerne noch prüfen ob eine zweite Variable ebenfalls 0 oder nicht definiert ist und den Code nur dann kompilieren wenn eine der beiden Varaiblen nicht definiert oder == 0 ist.
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
Matrix in Spaltenarrays gespeichert, wie in Zeilenarrays umwandeln ohne Speichermehrverbrauch?  
Beitrag No.7 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2015-12-11
milch
 
\(\begingroup\)
Das stimmt natürlich, ich bin jetzt sowieso an einem Punkt angekommen an dem mir so langsam dämmert das eine Transponierung einer Matrix von der Größenordnung mit denen ich zu tun habe und die über mehrere Nodes verteilt ist, vermutlich doch keine so gute Idee ist.
Das Problem ist, dass ich schlimmstenfalls wirklich jedes Element mit einem Element auf einem anderem Node austauschen muss, d.h. ich muss und das mit MPI calls (also zwei Calls). Ich vermute, dass allein die Initialisierung der Kommunikation zwischen den Nodes um ein vielfaches länger dauert als die Übertragung einer einzelnen double Variable. Bei 100000x100000 Elementen dauert das ewig.
Ich muss also sowieso einen anderen Weg gehen.


Vielleicht ändert es was die Transponierung erst am Ende zu machen, ich denke mal darüber nach.
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
Matrix in Spaltenarrays gespeichert, wie in Zeilenarrays umwandeln ohne Speichermehrverbrauch?  
Beitrag No.5 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2015-12-10
milch
 
\(\begingroup\)
Danke.
Die Spalten der Matrix sind über mehrere Nodes eines Clusterrechners verteilt, sie ist Teil eines Gleichungssystem das mittes LU-Zerlegung gelöst werden soll, der geeignete Algorithmus is bereits implementiert für Matrizen die als Zeilenvektoren über mehrere Nodes verteilt vorliegen.
Ich denke es ist einfacher die Matrix zu transponieren als den Algorithmus neu zu implementieren.
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
Matrix in Spaltenarrays gespeichert, wie in Zeilenarrays umwandeln ohne Speichermehrverbrauch?  
Beitrag No.2 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2015-12-10
milch
 
\(\begingroup\)
Ich möchte die matix ja nicht transponieren, sondern die Informationen der Spaltenarrays auf Zeilenarrays übertragen und zwar so das ich die bereits angelegten Spaltenarrays weiterverwenden kann und daher nur uminterpretieren muss.

Das ich einen Buffer brauche ist klar, aber nicht wie groß der mindestens sein muss. Ich will ihn so klein wie möglich halten.
edit: ich habe kurz darüber nachgedacht, vermutlich ist handelt es sich wirklich um das gleiche Problem wie die Matrix zu transponieren, ok.
Aber meine grundsätzliche Frage bleibt natürlich bestehen.

edit2: ich möchte das ganze in C realisieren.
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
C++: Array gegeben, wie umgekehrt von (eindeutigen aber unsortieren) Einträgen auf Index schließen?  
Beitrag No.10 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2015-12-10
milch
 
\(\begingroup\)
Danke für alle Antworten, ich habe jetzt aber (mit einer Übertragbarkeit auf C im Sinn) beschlossen doch mit einem vollen Array zu arbeiten, d.h. ich lege einen Array in der Länge der größten Zahl an und dieser kann dann entsprechend große Indizies verwenden. Das dürfte dann die schnellste Lösung sein. Der Speicherverbrauch ist zwar hoch aber in meinem Anwendungsfall muss ich sowieso mit Matrixten hantieren die n mal soviel Speicher benötigen wie ein solcher Array der Länge n.
Das heist wenn ich die Matrix speichern kann, dann sollte es auch möglich sein noch so einen Array zu speichern, der fällt da nicht ins gewicht.
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
Matrix in Spaltenarrays gespeichert, wie in Zeilenarrays umwandeln ohne Speichermehrverbrauch?  
Themenstart
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2015-12-10
milch
 
\(\begingroup\)
Hi,
ich habe die Spalten einer quadratischen Matrix (nxn) in n Arays (der Länge n) gespeichert.
Ich brauche aber eigentlich keine Spaltenvektoren sondern Zeilenvektoren. Ich möchte das ganze aber erreichen ohne einen zusätzlichen Satz von arrays anlegen und speichern zu müssen.
D.h. ich möchte nur mit den Spaltenarrays arbeiten und vermutlich brauche ich noch mind. einen buffer-Array, am Ende will ich die Spaltenarrays dann einfach als Zeilenarrays interpretieren können.

Ich habe ein bisschen rumprobiert komme aber nicht mit einem Buffer-Array aus ohne das ich Elemente der Matrix überschreiben müsste die noch nicht neu positioniert sind.
Da es sich hierbei um ein Standardproblem handelt interessiert mich in erster Linie wieviele Buffer-Arrays man braucht, ist das abhängig von n?

Ein fertiger Algorithmus wäre natürlich noch besser (gerne auch in Peusocode).
Kann mir da jemand weiterhelfen?
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
C++: Array gegeben, wie umgekehrt von (eindeutigen aber unsortieren) Einträgen auf Index schließen?  
Beitrag No.8 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2015-12-09
milch
 
\(\begingroup\)
Auf den Rechnern (Cluster Computer mit vielen Tausend CPUs) läuft gcc 4.1.2. Meines wissens unterstützt der kein C++11, ändern kann ich daran nichts.

[Die Antwort wurde nach Beitrag No.6 begonnen.]
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
C++: Array gegeben, wie umgekehrt von (eindeutigen aber unsortieren) Einträgen auf Index schließen?  
Beitrag No.3 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2015-12-09
milch
 
\(\begingroup\)
Ok vielen Dank für die Antworten, ich denke mit std::map kann ich mein Problem lösen, die unsorted Variante kann ich leider nicht verwenden, weil es erste ab C++11 unterstützt wird.

Aber mich interessiert in diesem Zusammenhang jetzt auch wie sowas in C gelöst wird, da gibt es ja soweit ich weiß keine assoziativen Arrays?
\(\endgroup\)

Programmieren
Universität/Hochschule 
Thema eröffnet von: milch
C++: Array gegeben, wie umgekehrt von (eindeutigen aber unsortieren) Einträgen auf Index schließen?  
Themenstart
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2015-12-09
milch
 
\(\begingroup\)
Hi,
ich habe eine Frage zu einem programmiertechnischen Problem (es geht um C++), die sich vermutlich (hoffentlich) einfach beantworten lässt, aber mir fällt beim besten Willen nicht ein wie.

Mein eigentliches Problem ist zwar etwas komplizierter (ich habe eindeutig nummerierte Gleichungen auf einem Multiprozessorsystem über mehrere Nodes/CPUs verteilt) man kann es aber auf folgendes simples Minimalbeispiel überführen:

Ich habe einen Array gegeben, dessen Einträge Zahlen sind, diese Zahlen sind eindeutig, es gibt also keine davon doppelt. Die Zahlen sind nicht geordnet und es tauchen auch nicht alle Zahlen die zwischen der größten und der kleinsten Zahl liegen auf.
C++
array[0] = 123
array[1] = 7
array[2] = 70002123
...

usw. der Array ist im allgemeinen sehr groß und die Größenordnung der auftretenden Zahlen kann durchaus um einen Faktor 1000 oder mehr größer sein als die Größe des Arrays.

Ich möchte nun möglichst effizient ganz gezielt auf das Feld zugreifen in dem eine bestimmte Zahl liegt. D.h. beispielsweise, ich habe die Zahl 70002123 gegeben und will jetzt erfahren, dass diese Zahl in Feld 2 gespeichert ist.

Aufgrund der Größe der Zahlen kann ich natürlich keinen zweiten Array anlegen und über dessen Indizies auf die Feldnummern abbilden. Ich bräuchte eher so was wie einen assoziativen Array, der so große Zahlen als Index verwenden kann ohne aber so viele Felder haben zu müssen.
Es geht hier natürlich darum Speicher zu sparen.

Ich möchte auch nicht mit einer for-Schleife jedes Feld durchgehen bis ich die gesuchte Zahl gefunden habe, das scheint mir zumindest nicht besonders effizient zu sein.

Was wäre hier die beste Lösung, in Standard C++ und auch ohne extra Bibliotheken wie boost. Da ich die Lösung auf Rechnern einsetzen muss/will auf denen uralt Compilerversionen installiert sind, ich kann daran leider nichts ändern.
\(\endgroup\)

Numerik & Optimierung
Universität/Hochschule 
Thema eröffnet von: milch
Nichtlineares Gleichungssystem lösen mit MPI: Alternativen zum Newton-Verfahren (oder Verbessungen)?  
Beitrag No.2 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2015-12-06
milch
 
\(\begingroup\)
Ich habe mich etwas in diese Thematik eingelesen, insbesondere GMRES, prinzipiell sieht das schon sehr interessant aus, ich habe aber leider nur sehr theoretische Paper gefunden, wo dann ebenfalls an vielen Stellen kompliziertere Operationen auftauchen die den Austausch diverser Zwischenschritte an alle Threads erfordern würden.
Ich kann nicht einschätzen ob sich das effizient parallelisieren lässt, deshalb ja auch meine Frage hier.
Über die parallele durchführung solcher Algorithmen habe ich leider garnichts konkretes gefunden und damit stehe ich im Prinzip wieder am Anfang.
\(\endgroup\)

Numerik & Optimierung
Universität/Hochschule 
Thema eröffnet von: milch
Nichtlineares Gleichungssystem lösen mit MPI: Alternativen zum Newton-Verfahren (oder Verbessungen)?  
Themenstart
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2015-12-04
milch
 
\(\begingroup\)
Hi,
ich brauche eine Orientierungshilfe bei folgendem Problem:

Ich habe ein nichtlineares Gleichungssytem der folgenden Form:

<math>
f_1(x_1,...,x_n) = 0\\
...\\
f_n(x_1,...,x_n) = 0,
</math>

das ich (näherungsweise) lösen will (die Größenordnungen um die es hier geht liegt zwischen n=10^5 bis n=10^6).
Ich habe einige (sequentielle) Verfahren getestet und bin insbesondere mit dem Newton-Verfahren sehr zufrieden (es konvergiert sehr gut d.h. auch da noch wo ich mit anderen Verfahren keine Lösung mehr erhalten habe).

Der Grund weshalb ich hier schreibe ist der, dass ich bei dem Versuch das Verfahren zu Parallelisieren (ich arbeite mit openMPI bzw. MPI [nicht openMP]) auf Probleme gestoßen bin und ich möchte nun zunächst klären ob ich auf dem richtigen Weg bin oder lieber ein anderen Verfahren verwenden sollte und wenn ja welches.

Also, die Parallelisierung ist notwenig um die Rechnenzeit und den Arbeitsspeicherverbrauch zu reduzieren (mir stehen keine shared Memory Systeme zur Verfügung sondern nur Distributed Memory Systeme [dafür aber mit vielen Tausend Nodes bzw. CPUs]).

Das Newton-Verfahren basiert in den Varianten die ich kenne auf einer LU-Zerlegung der Jacobi-Matrix. Die normale LU-Zerlegung kann man durchaus parallelisieren, ein Beispiel z.b. hier: github.com/puneetar/Parallel-LU-Factorization-with-OpenMP-MPI/blob/master/src/MPI.c
Das Problem ist, dass in diesem Beispiel keine Pivotisierung durchgeführt wird, dass heist, das diese Zerleung nicht universell funktioniert. Implementierungen mit Pivotisierung bz.w. Zeilenvertauschungen die parallelisiert sind habe ich erstmal nicht gefunden. Mir stellt sich hier also die Frage:
1. Ist das Möglich?

Das andere bereits angesprochene Problem ist der Speicherverbrauch, selbst wenn ich die LUP-Zerlegung paralleliseren kann (oder mit der normalebn LU-Zerlegung auskommen könnte) ist es scheinbar nicht möglich zu verhindern, dass zu jeder Thread, zumindest zeitweilig, eine volle Kopie der Jacobi Matrix bzw. ihrer Zerlegung speichern muss. Selbst wenn es am Ende f+r die Anwendung des Newton-Verfahrens ausreicht, wenn ich die Spalten der LU-zerlegten Jacobi Matrix auf die Threads verteilen kann.
2. liegt ich mit meiner Einschätzung richtig?

Ich muss also entscheiden ob es sich lohnt diesen Weg weiterzuverfolgen. Idealerweise könnte mir hier also jemand sagen, dass es möglich ist die LUP - Zerlegung parallelisiert durchzuführen und zwar so, dass idealerweise jeder Thread nur eine Zeile oder Spalte oder etwas in diese Größenordnung speichern muss.

Und wie sieht es mit den alternativen aus, gibt es ein anderes empfehlenswertes Verfahren?
\(\endgroup\)

Textsatz mit LaTeX
Universität/Hochschule 
Thema eröffnet von: milch
LaTeX-Literaturverwaltung für Linux das Biblatex-fähig ist?  
Beitrag No.2 im Thread
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag2015-07-12
milch
J
\(\begingroup\)
Ja das sieht aus als wäre es das was ich suche, danke.
\(\endgroup\)
 

Sie haben sehr viele Suchergebnisse
Bitte verfeinern Sie die Suchkriterien

[Die ersten 20 Suchergebnisse wurden ausgegeben]
Link auf dieses Suchergebnis hier
(noch mehr als 20 weitere Suchergebnisse)

-> [Suche im Forum fortsetzen]
 
 

 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2018 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]

used time 0.357709