Ein Bekannter von mir hat Corel Bryce, daß ist ein Rendering-Programm, mit dem man beispielsweise ein einzelnes Bild auf mehreren Rechnern gleichzeitig/parallel rendern kann. So ist ein Bild, das auf einem Einzelrechner über eine halbe Stunde zum Rendern braucht, meist schon nach 2 oder 3 Minuten fertig, vorausgesetzt man hat dafür ausreichend Rechner im Netzwerk zur Verfügung. Daher wollte ich mal fragen, ob es so etwas auch bei Compilern gibt und ob jemand C++ -Compiler kennt, die verteilt kompilieren können?
Sascha
Verteilt rechnende Compiler?
-
SpeedKing
- TuX-omane

- Beiträge: 2943
- Registriert: 12.09.2003 17:14
Das kannst du im Prinzip mit jedem Compiler machen. Da dein Projekt ja immer aus mehreren SourceCode-Dateien besteht, die alle unabhängig voneinander compiliert werden können, kannst du auf so vielen Rechnern, wie du SourceDateien hast, compilieren. Linken kannst du dann aber nur auf einem Rechner.
In der Praxis könnte das so aussehen:
Du gibst im makefile zu jeder SourceDatei an, daß eine rsh auf einem anderen Rechner aufgemacht werden und in dieser compiliert werden soll.
Alle obj-Dateien werden in ein Netzlaufwerk geschrieben. Wenn alles compiliert ist, kann dein Rechner (oder der schnellste Rechner) das ganze linken.
In der Praxis könnte das so aussehen:
Du gibst im makefile zu jeder SourceDatei an, daß eine rsh auf einem anderen Rechner aufgemacht werden und in dieser compiliert werden soll.
Alle obj-Dateien werden in ein Netzlaufwerk geschrieben. Wenn alles compiliert ist, kann dein Rechner (oder der schnellste Rechner) das ganze linken.
-
LinuxFan
- Vereinsmitglied

- Beiträge: 1200
- Registriert: 17.07.2001 01:00
- Wohnort: Berlin
Schau Dir mal distcc an: http://distcc.samba.org/
Ist leicht zu installieren und sieht sehr vielversprechend aus.
Ist leicht zu installieren und sieht sehr vielversprechend aus.
-
yoyo
- Vereinsvorstand

- Beiträge: 8129
- Registriert: 17.12.2002 14:09
- Wohnort: Berlin
Einige Makesysteme unterstützen das. Da im Makefile die Abhängigkeiten der Sourcen, libs, binaries stehen, kann Make entscheiden welche Sachen parallel baubar sind und dieses dann auch auf verschiedene Rechner schieben. Die Abhängigkeiten im MAkefile müssen natürlich richtig sein. Clearmake kann das z.B. und AFAIK kann gnumake das wohl auch.
yoyo
yoyo
-
Bananeweizen
- Urvater

- Beiträge: 2867
- Registriert: 14.06.2001 01:00
- Wohnort: Kornwestheim
Es gibt auch einen Pseudo-Compiler für Visual C++, der das ermöglicht. Dabei wird der normale Compiler gegen ein Programm ausgetauscht, welches die Sache im Netz verteilt und koordiniert.
Ist aber ziemlich teuer und lohnt sich meiner Meinung nach nicht. Namen weiß ich nicht mehr.
Einfacher ist übrigens der Umstieg auf Delphi. Dort sind etliche Tausend compilierte Zeilen pro Sekunde auf einem Standard-PC normal.
Ciao, Michael.
Ist aber ziemlich teuer und lohnt sich meiner Meinung nach nicht. Namen weiß ich nicht mehr.
Einfacher ist übrigens der Umstieg auf Delphi. Dort sind etliche Tausend compilierte Zeilen pro Sekunde auf einem Standard-PC normal.
Ciao, Michael.
-
Sascha_Luehrs
Vielen Dank für die zahlreichen Antworten. Das mit den Makefiles war schon mal ne gute Idee, letztlich habe ich mich dann aber für distcc, den Compiler, den LinuxFan empfohlen hatte, entschieden. Installation und Handhabung sind sehr leicht, und das tollste ist, ich habe eben das erste Mal ein grösseres Programm (Das executable ist nach dem Kompilieren 20 MB gross) mit distcc auf mehreren Rechnern kompiliert, und das ging wie der Blitz. Vorher: 'ne Dreiviertelstunde. Mit distcc: ca. 5 Minuten. Echt prima! 