Irix > Programmieren, Kompilieren

MIPSpro softlicencing (newbie)

<< < (2/4) > >>

majix:
Programmieren für Mehrprozessorsysteme hat eigentlich nicht viel mit dem Compiler zu tun, sondern viel mehr mit den Systemlibrarys. Sobald man neue Threads erzeugen kann, kann man auch mehrere Prozessoren nutzen.

Aber wie gesagt, das hat nichts mit dem Compiler zu tun. Man könnte sogar Mehrprozessor-BASIC Programme schreiben  ;D Aber wer will das schon  ::)

olli_at:
laut mipspro doku gibt es für den compiler (mipspro c) spezielle präprozessordirektiven (#pragma irgendwas) die es ermöglichen bestimmte abläufe auf mehrer prozessoren zu verteilen anstatt diese sequenziell abzuarbeiten. ich wollte eigentlich wissen ob es solche präprozessordirektiven auch für gcc (im speziellen auf mehrprozessor MIPS basierten systemen) gibt. also bezieht sich die nutzung mehrerer prozessoren nicht auf den compilierungsvorgang per se, sondern auf die parallelisierung bestimmter routinen. ausserdem hätte man mit den präprozessordirektiven für die parallelprogrammierung  (von mipspro) die möglichkeit rechenintensive routinen auf mehrere prozessoren zu verteilen und/oder weniger rechenintesive funktionen sequentiell ablaufen zu lassen. seht euch das mal an im c reference manual (IRIX) das ist voll geil !! wer schenkt mir eine mipspro c compiler lizenz  ;) . man kann beispielsweise mit *pragma pfor eine for-schleife auf mehren prozessoren abarbeiten lassen (wenn dass nicht obercool ist).
ich kann mich natürlich auch täuschen; lasse mich gerne belehren!

lg
olli

majix:
Wow, das wusste ich nicht. Klingt erstmal recht cool.

Aber die Frage bei so automatischen MultiThreading ist, ob das wirklich klug ist. Denn wenn man eine for-Schleife parallelisieren lässt, dann muss der Compiler unter Umständen ziemlich viele Semaphoren einbauen, die Sicherstellen, dass sich die zwei Prozessoren nicht gegenseitig ins Gehege kommen. Kann ich mir zumindest gut vorstellen.

Ich denke, die maximale Leistung wird man aus einem Dual-System dann ziehen, wenn man sich selber genau Gedanken darüber macht, wie man sein Problem parallelisieren kann, und das dann auch selber so programmiert. Ohne Compiler-Voodoo.

Aber wenn der Compiler einem da helfend entgegenkommt, das ist natürlich nicht schlecht.

olli_at:
coole sache oder!
natürlich wäre es notwendig ein solches programm ziemlich gut zu planen. das will ich ja lernen. mir fehlt nur die lizenz zum coden  8)

lg
olli

majix:
Auch nicht alle Probleme sind vernünftig Parallelisierbar. Aber wo MultiThreading eine unglaubliche Menge hilft, sind Benutzeroberflächen. In BeOS hat jedes Fenster einen eigenen Thread, und wenn man was zeitaufwendiges machen will, sollte man auch einen neuen Thread starten.

Aufgrund dieser Architektur, in der das MultiThreading ein zentraler Bestandteil ist, ist BeOS so reaktionsschnell. Leider ist X11 angeblich nicht richtig MultiThreading fähig. Deshalb wird was Reaktivität anbetrifft UNIX an BeOS niemals richtig herankommen.

Aber für interessante Probleme, und wie man die gut parallelisiert, empfehle ich Dir einfach ein Buch über parallele Algorithmen. Genaue Titel kenne ich leider aus dem Stehgreif nicht. Gibt es bestimmt auch sehr unterschiedliche Niveaus, von "wie programmiere ich parallel" bis zu wissenschaftlichen Büchern, für die man viel Ahnung von theoretischer Informatik haben sollte.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln