Dienstag, 5. Oktober 2010

Wie gut skaliert Illumina OLB?

Illumina ist zur Zeit einer der Hersteller von Next Generation Sequencing (NGS) Maschinen. Beim NGS fallen im Vergleich zu den bis hierhin üblichen Methoden der Genetik eine riesige Menge an Daten an. NGS ermöglicht Genom-weite Untersuchungen. Teil der Illumina Auswertungspipeline sind die Softwarebausteine Casva und der Off Line Base Caller (OLB). Weil sie risige Datenmanegen verarbeiten müssen, tun sie das möglichst parallel. Deshalb mach ich hier eine Test, wie gut der OLB skaliert. Beim betrachten der Testergebnisse ist zu beachten, dass die Illumina Software  sich gerade in Phase der rapiden Weiterentwicklung befindet.
Für diesen Test setze ich das Testdatenset von Illumina ein, ein Dell R815 Server mit 4 Magny Cours (insgesamt 48 Cores, 64GB RAM, RAID 0, Centos 5.5). Ich variiere den Parameter j des OLB, der für eine Aufteilung des Jobs in mehrere Prozesse dient. Ich erhalte folgende Messergebnisse:

Und diese Daten jetzt mal als Diagramm:
Positiv ist, dass OLB über mehrere Cores skaliert. Es wird mehr als der Faktor 4 erreicht. Negativ ist, dass OLB mit mehr als 7 Prozessen keinen Geschwindigkeitszuwachs mehr hat. Damit drängt sich die nächste Frage auf, warum ist 7 das Optimum und warum scheint es ein Plateau bei 4-6 zu geben?

Aus meiner Sicht enthält OLB ca. 23..24% nicht skalierenden Code. Zusammenfassend kann man sagen, OLB profitiert sehr gut von mehreren CPU-Cores, aber nur begrenzt bis 7, d.h. die Taktfrequenz spielt weiterhin, wenn auch untergeordnete Rolle.

Keine Kommentare:

Kommentar veröffentlichen