|
|
|
|
| Dabei entwickelte sie innovative Ansätze in den Bereichen der Systemarchitektur, der Softwareentwicklung, Geschäfts- und Prozessmodellierung, Fehlervermeidung von Entwicklungsparadigmen, formalen System- und Softwaremodellierungs-Sprachen, systemorientierten Ansätze zur Systemmodellierung und -entwicklung, automatisierten Laufzeit-Umgebungen, Methoden um die Zuverlässigkeit und Wiederverwendbarkeit von Software zu maximieren, Problemanalyse, dem Überprüfen der Korrektheit von Spracheigenschaften, Techniken für offene Architekturen stabiler Systeme, vollständige Automatisierung des Lebenszyklus, Qualitätssicherung, der nahtlosen Integration, verteilten Prozesssystemen, Fehlererkennung und -behebung, Mensch-Maschine-Schnittstellen, Betriebssysteme, Ende-zu-Ende-Test-Techniken und dem Management von Software über deren Lebenszyklus. | |
Stramm
Aus https://de.m.wikipedia.org/wiki/Margaret_Hamilton_(Wissenschaftlerin)
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von GandalfDerPinke am 08.07.2016 8:15]
|
|
|
|
|
|
Ich habe ein Programm, dessen Hauptlaufzeit durch das Ausrechnen von FFTs bestimmt wird, was ich mit fftw3 mache. Die fftw3 libs sind bereits installiert (mit gcc kompiliert). Ich habe aber auch Zugriff auf Intel Compiler, MKL und so. Macht es Sinn, mein programm mit dem Intel Compiler zu bauen (auf einem Cluster mit Intel CPUs)? Die Performance der FFTs dürfte das ja nicht beeinflussen?
Wenn nicht, macht es Sinn, fftw3 mit icc selbst zu bauen oder meint ihr, die Performance Gewinne bei so durchoptimierten Libs sind marginal?
(Die Jobs laufen teilweise mehrere Tage, weshalb sich ein Laufzeitgewinn im einstelligen % Bereich schon lohnen würde.)
|
|
|
|
|
|
|
Falls alle CPUs den gleichen Befehlssatz benutzen, könntest Du mal versuchen mit "-march=native" (gcc) zu kompilieren, das sollte alle verfügbaren Optimierungen anschalten, die auf der zum kompilieren verwendeten CPU verfügbar sind. Kann dann halt zu Crashes führen falls beim Ausführen doch mal eine ältere CPU dabei ist. Oder bei verschiedenen CPUs halt den kleinsten gemeinsamen Nenner aus "gcc -march=native -Q --help=target" rausfiltern.
|
|
|
|
|
|
|
Es sind schon alle CPUs die gleichen, ich hoffe daher, dass die Cluster admins fftw mit diesen Optimierungen kompiliert haben. Allerdings gibt es eben nur eine fftw-gcc version, und ich frage mich, ob es einen benefit gibt wenn ich das ganze mal mit icc wiederhole.
|
|
|
|
|
|
|
Ganz blöd: Kannste das nicht ausprobieren?
|
|
|
|
|
|
|
Bin dabei
Aber das sind doch genau die Dinge, mit denen sich Leute wie Traxer auskennen, deshalb frage ich hier.
|
|
|
|
|
|
|
Lässt du gcc mit -march=native laufen, wie Omega vorschlug, oder ohne?
Bin mal gespannt was rauskommt.
|
|
|
|
|
|
|
Ich habe es erstmal aufgegeben, weil der Intel Compiler eine Bitch ist.
|
Code: |
./tests/bench -opatient 512 1024 2048 4096
-march=native
Problem: 512, setup: 526.11 ms, time: 3.99 us, ``mflops'': 5780.5
Problem: 1024, setup: 855.28 ms, time: 10.34 us, ``mflops'': 4952.2
Problem: 2048, setup: 1.53 s, time: 24.36 us, ``mflops'': 4623.7
Problem: 4096, setup: 2.94 s, time: 56.15 us, ``mflops'': 4376.7
-O3
Problem: 512, setup: 526.57 ms, time: 4.30 us, ``mflops'': 5356.6
Problem: 1024, setup: 858.65 ms, time: 10.63 us, ``mflops'': 4815.7
Problem: 2048, setup: 1.54 s, time: 26.09 us, ``mflops'': 4317.4
Problem: 4096, setup: 2.97 s, time: 59.19 us, ``mflops'': 4152
|
|
Geht schon.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Oli am 08.07.2016 10:31]
|
|
|
|
|
|
| Zitat von Oli
Aber das sind doch genau die Dinge, mit denen sich Leute wie Traxer auskennen, deshalb frage ich hier.
| |
irgendwer rief mich?
erm, speziell zu der lib kann ich dir das nicht sagen. die 2 minuten google suche und das github repo dazu besagt, dass es zumindest SSE und AVX nutzen kann.
ist das bei dir auch an? das wäre so das erste, was ich nachschauen würde, da das am meisten performance boost geben kann.
der ICC kann bei diversen sachen lustige performance vorteile bringen, es kann allerdings auch gewaltig nach hinten losgehen. das ist in etwa so, wie mit den optimierungen, die llvm so baut. kann schneller werden, kann aber auch langsamer werden.
das einzige, wie du das rausbekommst ist ausprobieren, weil es hier ganz stark auf die ausnutzung der diversen CPU einheiten ankommt.
falls du richtige performance willst und dir 32-bitige werte reichen wären da noch GPUs zu empfehlen, allerdings wirst du dann vermutlich die lib wegwerfen können. intel bzw. amd, potentiell auch nvidia, sollten da freie fft libs haben, die sehr gut skalieren, sowohl auf CPUs, als auch auf GPUs.
was du dir vielleicht mal anschauen kannst / solltest, ist ISPC. das ist jetzt allerdings kein ersatz für GCC, clang oder ICC, sondern eine möglichkeit "einfacher" vector code zu schreiben / bauen.
btw. der intel compiler sollte eigentlich nahezu kompatible zu GCC sein. ist schon etwas her, dass ich den mal genutzt habe, damals gabs da nen GCC kompatibilitäts schalter.
|
|
|
|
|
|
|
| Zitat von GandalfDerPinke
| Dabei entwickelte sie innovative Ansätze in den Bereichen der Systemarchitektur, der Softwareentwicklung, Geschäfts- und Prozessmodellierung, Fehlervermeidung von Entwicklungsparadigmen, formalen System- und Softwaremodellierungs-Sprachen, systemorientierten Ansätze zur Systemmodellierung und -entwicklung, automatisierten Laufzeit-Umgebungen, Methoden um die Zuverlässigkeit und Wiederverwendbarkeit von Software zu maximieren, Problemanalyse, dem Überprüfen der Korrektheit von Spracheigenschaften, Techniken für offene Architekturen stabiler Systeme, vollständige Automatisierung des Lebenszyklus, Qualitätssicherung, der nahtlosen Integration, verteilten Prozesssystemen, Fehlererkennung und -behebung, Mensch-Maschine-Schnittstellen, Betriebssysteme, Ende-zu-Ende-Test-Techniken und dem Management von Software über deren Lebenszyklus. | |
Stramm
Aus https://de.m.wikipedia.org/wiki/Margaret_Hamilton_(Wissenschaftlerin)
| |
Eben. Dein Link scheint leider deinem Smartphone zum Opfer gefallen zu sein, in doppelter Hinsicht
Wenn mich jemand nach einem weiblichen Vorbild fragen wuerde, wuerde ich auf Hamilton verweisen. Und sie ist auch kein haesslicher Nerd mit Pickeln. Ausserdem ist es verdammt cool neben seinem ausgedruckten Stapel Quellcode zu stehen
|
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von hoschi am 08.07.2016 11:19]
|
|
|
|
|
|
eine gewisse Grace Hopper kann da auch ein bisschen was vorweisen.
|
|
|
|
|
|
|
Danke Traxer. Diese SIMD Optimierungen habe ich angeschaltet bei fftw+gcc, siehe obige Benchmarks. Ich lass den icc Krams jetzt, der meckert rum wenn ich shared libs bauen will und auf so Probleme habe ich gerade keine Lust.
|
|
|
|
|
|
|
Hast du schon COBOL programmieren duerfen
Probleme heute:
Eine API die Daten "ueberschneidend" anliefert -> Das hat mich an mir zweifen lassen
Oben genannte API terminiert die C-Strings nicht mit NULL. Das sind ja dann keine C-Strings mehr
Subversion
Letzteres war jetzt wirklich nicht mehr notwendig. Feierabend!
|
[Dieser Beitrag wurde 5 mal editiert; zum letzten Mal von hoschi am 08.07.2016 19:22]
|
|
|
|
|
|
also wenn man was von grace hopper verlinken sollte dann definitiv das hier meiner meinung nach
|
|
|
|
|
|
|
| Zitat von Rufus
vmotion oida
| |
Das kann qemu übrigens auch*.
* das Block-Device der VM muss beiden Hypervisoren (jaja ist qemu nicht) zur Verfügung stehen.
|
|
|
|
|
|
|
Das kostet aber nicht genug Geld um enterprisey zu sein.
| Zitat von GandalfDerPinke
| Zitat von Rufus
Ist ganz nett wenn du oft irgendwelche Notifications bekommst und nicht ständig aufs Handy gucken willst. Ansonsten halt ... naja, mehr tuts nicht.
Gut, man kann noch auf Knopfdruck Fotos und so auf den Rechner schieben, aber das eignet sich wirklich nur für ganz kleine Anzahlen.
| |
Hm, ja dann eher nicht.
| |
Habe inzwischen doch noch zwei coole Usecases gefunden: Wenn man URLs, die in irgendeiner App rumschwirren mit kdeconnect "teilt", poppen die direkt im Browser des verbundenen Rechners auf. Und eingehende SMS, die ne gerade am Rechner angeforderte TAN enthalten werden auch im Tray per Popup vorgelesen.
What a time to be alive.
|
|
|
|
|
|
|
Es gibt doch auch Software, um eine (laufende?) Maschine zu virtualisieren ohne Downtime, oder? Wie spielen da die Switches etc mit? Plötzlich ist doch eine IP- bzw MAC-Adresse auf einem ganz anderen Port zu erreichen
|
|
|
|
|
|
|
das musst du vorher einstellen bzw. dynamisch handhaben.
generell ist das möglich, habe ich auch schonmal gemacht, mit disk anpassung und co. alles mit den virt tools und loopback (mount) gemacht, wenn ich das noch richtig in erinnerung habe.
|
|
|
|
|
|
|
Wirklich(tm) Zero Downtime wird aber nicht gehen. Ohne ausschalten oder neustart, bestimmt. Reicht ja, wenn's rein replizierter Service ist...
|
|
|
|
|
|
|
| Zitat von ShinyDoofy
Es gibt doch auch Software, um eine (laufende?) Maschine zu virtualisieren ohne Downtime, oder? Wie spielen da die Switches etc mit? Plötzlich ist doch eine IP- bzw MAC-Adresse auf einem ganz anderen Port zu erreichen
| |
Dass VMs in einem homogenen Cluster (say, Bladecenter) ohne Downtime oder Verbindungsabbrüche über die Eisen migrieren können liegt einfach daran, dass zwischen dir und den VMs soviel Hard-, Software- und Netz-Abstraktion liegt, dass bis zum letzten Verbindungsstatus alles gehalten und umgebogen werden kann. Aber dass du den gemeinen Desktop unterm Schreibtisch auch mit 0 Downtime auf einen Hypervisor virtualisiert bekommst, halte ich für grob unwahrscheinlich. Zumindest solange du das Kunststück nicht explizit vorbereitest, was dann wieder fernab des Allgemeinen ist.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Rufus am 09.07.2016 17:15]
|
|
|
|
|
|
| Zitat von Rufus
vmotion oida
| |
VMotion ist ja ein alter Hut. Ich meinte eher die sehr schön umgesetzte Integration der VMWare-Anwendungen untereinander.
VMWare kann seit ein paar Jahren auch Fault Tolerance. Eine VM wird parallel auf mehreren Hosts ausgeführt. Fällt ein Host aus, wird ohne Neustart oder ähnliche Ausfälle auf den Backup-Host gewechselt. Zuerst ging das nur mit einem Prozessor, mittlerweile geht das auch auf Multiprozessor-Systemen.
¤: und Storage VMotion, also Maschinen live von einem Storage aufs andere umziehen, geht auch schon seit einigen Jahren. Teuerprise hat schon seine Vorteile.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von GarlandGreene am 09.07.2016 17:31]
|
|
|
|
|
|
Jetzt fällt mir gerade erst auf, dass vmotion, storage-vmotion und fault tolerance in der Tat drei verschiedene Dinge sind. Auch einer der (Neben)Effekte, wenn man das alles hirnlos per drag&drop machen kann.
|
|
|
|
|
|
|
| Zitat von csde_rats
Wirklich(tm) Zero Downtime wird aber nicht gehen. Ohne ausschalten oder neustart, bestimmt. Reicht ja, wenn's rein replizierter Service ist...
| |
du kannst nen nicht vm system schon ohne downtime in eine vm migrieren. das darf halt nur nicht die gleiche maschine sein und wie gesagt, das drumrum muss im vorfeld halt alles angepasst sein.
|
|
|
|
|
|
|
|
|
|
|
Also nicht für Normalsterbliche, nagut. Danke für die Info
Was anderes: Use systemd, they said, it'll be good, they said: Ich hab einen Ethernetadapter mit Namen enxMACAdresse
|
|
|
|
|
|
|
Ist doch voll deterministisch jetzt!!1
|
|
|
|
|
|
|
Nice
|
|
|
|
|
|
|
Immerhin unsigned char oder etwas equivalentes, es koennte auch nur ein signed char sein.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von hoschi am 11.07.2016 9:48]
|
|
|
|
|
|
256 axes ought to be enough for anybody.
|
|
|
|
|
|
|
256 Haxen sind genug für alle.
|
|
|
|
|
|
Thema: 30*100 gute Gründe für Linux ( Jeder Post zählt ) |