Question about paropen_mapped
ich schon wieder. Mit dem _paropen_mapped()
bekomme ich ja eine sid zurück, egal wieviele ranks und files ich denn damit nun öffne. Jetzt habe ich mich gefragt, wie das mit den sion_fread()
calls dann ist, woher weiss der denn in welchem rank/file will ich denn was lesen? In deinem test_mapped_1.c habe ich dann folgendes gefunden:
sion_seek_fp(sid,grank,SION_CURRENT_BLK,SION_CURRENT_POS, &fp);
bread=sion_fread(buffer,1,CHUNKSIZE/2+grank,sid);
Das heisst, wir müßen vor jedem sion_fread() ein sion_seek() machen. Das sieht auf Anhieb stark thread-unsafe aus, wenn man dann mit mehreren Threads die einzelnen ranks lesen will. Ich wüßte da auch noch nicht mal, wo man da als Nutzer ein lock hinpacken müßte, um das sicher zu machen. Das geht bei OTF2 bestimmt dann nur direkt an der Quelle. Da ich heute schon mit Markus über das thread-safe Thema geredet hab, hab ich Ihn mal auf Cc gesetzt.
Meine naive Vermutung war, das wir beim _paropen_mapped()
in dem mapping_filenrs
mehrere sid's zurück bekommen. Und wir diese dann direkt in den sion_fread()
calls benutzten können.
Grüße, Bert
-- Dipl.-Inf. Bert Wesarg wiss. Mitarbeiter