Archive

Archive for the ‘hpc’ Category

Pentacast

December 9th, 2009 5 comments

Wir sind vom C3D2 in Form von “klobs” angesprochen worden ob wir nicht Lust hätten einen Podcast über HPC aufzunehmen. Natürlich haben wir ja gesagt und waren im Radiostudio von coloRadio hier in Dresden. Wir hatten einen lustigen Abend und dabei ist dann dieser Podcast rausgekommen, für den wir uns glaube ich wirklich nicht schämen brauchen.

http://c3d2.de/news/pentacast-6-high-performance-computing.html

BTW. Auf coloRadio gibt es eine Petition die unterzeichnungswürdig ist … wenn ich recht informiert bin wollen die denen die Sendelizenz wegnehmen, was natürlich für ein freies Radio den Tot bedeutet.

Categories: cultural, hpc, nerdcore, science Tags: , ,

Stony Brook wins SC09 Cluster Challenge

November 25th, 2009 3 comments
Categories: hpc, news Tags: , ,

How to change processors on a Cray XT5

November 24th, 2009 No comments

There’s a nice video of the procedure to change the cpus on Kraken, currently #3 of the top500 list. I found this to be quite interesting.

programming-wtf

October 27th, 2009 2 comments

Ich bin heut bei der Arbeit auf einen netten Codeabschnitt gestoßen, in Datei A stand:

osm_port_t *port = cl_item_obj(item, port, list_item);

So weit so gut, nur was ist dieses ‘list_item’? In der Funktion und in der Datei ist es zumindest nicht enthalten, also mal grep -R ;)

In Datei B hab ich dann diesen Spaß gefunden:

#define cl_item_obj(item_ptr, obj_ptr, item_field) (typeof(obj_ptr)) \
((void *)item_ptr - (unsigned long)&((typeof(obj_ptr))0)->item_field)

Ok, vollsten Respekt vor dem Schreiber für seinen Hack, den ich immer noch nicht verstanden hab. Ist aber auch nicht ganz so wichtig, zumal wenn ich ihn verstehen würde, würde ich ihn nicht mehr so toll finden ;)

ABER: wie zur Hölle kann man so was undokumentiert lassen!? (nix, nada, no comment)

PS: wer noch wissen will woher das stammt, aus dem SubnetManager von InfiniBand (open-source wohlgemerkt)

Categories: c/c++, hpc, linux, wtf Tags:

HPC for dummies

September 25th, 2009 1 comment

The book all of us have been waiting for has finally arrived: HPC for Dummies

Available as a free download (registration required, though) at

http://www.sun.com/x64/ebooks/hpc_for_dummies.pdf

My first reading experiences: it’s about clusters, not HPC.

Categories: hpc, technic Tags: , , ,

SiCortex, R.I.P.

May 27th, 2009 2 comments

SiCortex scheint wohl von ähnlichen Problemen betroffen zu sein wie Quadrics. Zumindest berichtet das heute insidehpc.com.

Ich möchte dazu mal keine Wertung abgeben. Das Kauz-graph Interconnect ist sicherlich eine clevere Lösung. Auf der ClusterChallenge hat sich aber gezeigt das die Portierung von Wisenschaftlichen Code auf diese Plattform sehr kompliziert ist.

Categories: hpc Tags: ,

Quadrics, R.I.P.

May 27th, 2009 No comments
Categories: hpc Tags: , , ,

Nachruf zu CLT09

May 26th, 2009 1 comment

Irgendwie ist es immer peinlich sich selbst in Audio oder gar Video zu beobachten, dennoch möchte ich euch unseren Vortrag zu den vergangen Chemnitzer Linux Tagen nicht ersparen. Genauer gesagt ist der Audio-Stream dazu, nun online.

Categories: fun, hardware, hpc, linux, nerdcore Tags: ,

SCC 09

April 30th, 2009 No comments

Die ClusterChallenge heißt jetzt Student Cluster Competition (SCC). Die diesjährigen Softwarepakete sind auch schon teilweise festgelegt. Wie ich eine Mail von Frau Cook verstanden habe sind es dieses Jahr aber nur 4 + HPCC.

Das vierte Programm steht aber noch nicht fest.

Categories: hpc, science Tags: , , ,

Kombinatorik {n \choose k}: effiziente Berechnung der Varianten

April 14th, 2009 1 comment

Ich hatte schon früher das Problem einen Algorithmus zu finden um alle Varianten der Positionierung von k Elementen auf n Plätzen zu ermitteln (also {n \choose k} Möglichkeiten der Positionierung), besonders wenns um Speichereffizenz (nicht alle Kombination speichern) geht. Jupp hat mich heut wieder auf das Problem gestoßen und ich hab endlich eine “schöne” Lösung gefunden (es wird nicht viel benötigt, nur ein paar Schleifen und die Berechnung des Binomialkoeff.):

program iterkombi
	implicit none
	integer(kind=4), parameter :: n=6, k=2
	integer(kind=4) :: tmpN, tmpK, ind, pos, i, j
	integer(kind=4), dimension(1:n) :: arrayP
	character(len=15) :: str
 
	! schleife über Nr. der Kombination
	do j=1, binomial(n,k), 1
		ind = j
		tmpN = n; tmpK = k
		pos = 0; arrayP = 0
		! jedes der k Elemente positionieren
		do i=1, k, 1
			pos = pos + 1
			do while( ind - binomial(tmpN-1,tmpK-1) > 0 )
				ind = ind - binomial(tmpN-1,tmpK-1)
				tmpN = tmpN - 1
				pos = pos + 1
			end do
			tmpN = n - pos
			tmpK = tmpK - 1
			arrayP( pos ) = 1
		end do
		write(str,*) n
		write(unit=*,fmt='(A,I0,A,A,'//str//'I1)') "Belegungsarray (Nr. ", j, "): ", char(9), arrayP
	end do
 
	contains
 
	function binomial( n,k )
		integer(kind=4) :: binomial
		integer(kind=4) :: n, k, i, x, y
		x = 1; y = 1
		do i=k+1, n, 1
			x = x*i 	! n!/k!
		end do
		do i=2, n-k, 1
			y = y*i 	! (n-k)!
		end do
		binomial = x / y
	end function
end program

Ausgabe:

Belegungsarray (Nr. 1): 	110000
Belegungsarray (Nr. 2): 	101000
Belegungsarray (Nr. 3): 	100100
Belegungsarray (Nr. 4): 	100010
Belegungsarray (Nr. 5): 	100001
Belegungsarray (Nr. 6): 	011000
Belegungsarray (Nr. 7): 	010100
Belegungsarray (Nr. 8): 	010010
Belegungsarray (Nr. 9): 	010001
Belegungsarray (Nr. 10): 	001100
Belegungsarray (Nr. 11): 	001010
Belegungsarray (Nr. 12): 	001001
Belegungsarray (Nr. 13): 	000110
Belegungsarray (Nr. 14): 	000101
Belegungsarray (Nr. 15): 	000011

Der Vorteil: es kann jede Kombination einzeln berechnet werden ohne zu wissen wie die vorherige Kombination aussah.