fortran: poczekaj na otwarcie pliku, aż zostanie zamknięty przez inną aplikację

Mam kod fortran, który musi odczytać serię plików danych ascii (które łącznie mają około 25 Gb). Zasadniczo kod otwiera dany plik ascii, odczytuje informacje i używa go do wykonywania pewnych operacji, a następnie zamyka je. Następnie otwiera inny plik, odczytuje informacje, wykonuje pewne operacje i zamyka je ponownie. I tak dalej z resztą plików ascii.

Ogólnie każdy pełny bieg trwa około 10 godzin. Zazwyczaj muszę uruchomić kilka niezależnych obliczeń o różnych parametrach, a sposób, w jaki to robię, polega na sekwencyjnym wykonywaniu każdego niezależnego obliczenia, tak aby na końcu, jeśli mam 10 niezależnych obliczeń, całkowity czas procesora wynosi 100 godzin.

Szybszym sposobem byłoby uruchomienie 10 niezależnych obliczeń w tym samym czasie przy użyciu różnych procesorów w maszynie klastrowej, ale problem polega na tym, że jeśli dane obliczenie musi otworzyć i odczytać dane z danego pliku ascii, który został już otwarty i jest używany przez inne obliczenia, wtedy kod daje oczywiście błąd.

Zastanawiam się, czy istnieje sposób na sprawdzenie, czy dany plik ascii jest już używany przez inne obliczenia, a jeśli tak, poproś kod, aby poczekał, aż plik ascii zostanie ostatecznie zamknięty.

Każda pomoc byłaby bardzo pomocna. Z góry bardzo dziękuję.

Obamakoak.

questionAnswers(2)

yourAnswerToTheQuestion