Cache

Letzte Beiträge

Mehrkern oder nicht Mehrkern, dass ist die Frage

Ich habe inzwischen ein paar Experimente mit verschiedenen Mehrkernarchitekturen gemacht. Ich habe verschiende Algorithmen mit Cilk++ implementiert. Dabei kam es zu interessanten Ergebnissen. Ich hatte von superlinearen Speedup bis zu einem Speedup unter 1 alles. Aber woran liegt das, dass die Ergebnisse so weit auseinander gehen? Die schlechten Ergebnisse habe ich auf einem 2 Sockel Intel Xeon E5420-System mit 32 GB RAM gemacht. In der Mitte lag ein 2 Sockel System mit Intel Xeon X5570 und 48 GB RAM Die besten Ergebnisse lieferte ein 4 Sockel Rechner mit 16 GB RAM und AMD Opteron 852 Prozessoren.

Dein Freund der Cachemiss

Ich habe in meinen letzten Eintrag über Superlinearen Speedup geschrieben. Caching Effekte lassen sich auch in sequenziellen Programmen ausnutzen. So kann man lässt sich die klassische Matrixmultiplikation um Größenordnungen beschleunigen. Dazu muss man nur die Matrix B transponiert abspeichern. Wenn man jetzt duch die Spalten der Matrix B geht hat man eine höhere Lokalität und damit weniger Cachemisses. #include <iostream>#include <stdlib.h>#include <time.h> using namespace std; void mul(double *A, double *B, double *C, int dim) { int i, j, k; double s; for (i = ; i < dim; i++){ for (j = ; j < dim; j++) { s = 0.

Alle Posts