max2491 Napisano Sierpień 6, 2019 Zgłoszenie Share Napisano Sierpień 6, 2019 (edytowane) O błędzie procesora Skylake 6700 HQ pisano wiele, ale wydaje mi się, że i pewne starsze wersje procesorów low-end dla laptopów też nie są lepsze. Mój program, wcale nie spokrewniony z Prime, pada numerycznie na etapie egzekucji, gdy jeden z plików ma mniej lub więcej pustych wierszy w postaci źródłowej. Po dodaniu, lub usunięciu, pustego wiersza, wszystko jest na etapie egzekucji OK. Nie jestem w stanie jednoznacznie zdiagnozować przyczyny. Równie dziwaczne zachowanie ma miejsce na nniej zaawansowanych platformach sprzętowych. Na starej sprawdzonej platformie Kentsfield Q6600 nie ma najmniejszych problemów. Czy ktoś jest zainteresowany wgryzieniem się w ten problem. Postać źródłowa tego trefnego programu jest dość rozbudowana, ale problem pojawia się podczas modyfikacji stosunkowo niewielkiego pliku (ca 30 kB).. Edytowane Sierpień 21, 2019 przez max2491 brak odpowiedzi Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
max2491 Napisano Sierpień 7, 2019 Autor Zgłoszenie Share Napisano Sierpień 7, 2019 Nieco więcej szczegółów i pewne korekty. Aplikacja skompilowana na Skylake 6700HQ działa na tej platformie niedeterministycznie. Jedno uruchomienie prowadzi do poprawnych rezultatów, a któreś z kolejnych (pseudoprzypadkowo) do zupełnie błędnych. Binaria przeniesione na Kentsfield Q6600 generują wyłącznie poprawne rezultaty. Testowałem oba komputery za pomocą "mprime" (z mersenne.org), ale to jest raczej dość jednorodny test obciążeniowy. Nie wykazały te testy żadnych błędów. Może ktoś chciałby uruchomić binaria mojej aplikacji na platformie Skylake i podzielić się rezultatami? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
max2491 Napisano Sierpień 13, 2019 Autor Zgłoszenie Share Napisano Sierpień 13, 2019 Podejrzewałem, że za to niedeterministyczne działanie odpowiada hyperthreading i scheduler. Testowałem więc najprostszą wersję wielowątkową z pojedynczym wątkiem (pthreads). Po pierwsze, sztywne dowiązanie wątku do tego samego procesora (affinity) niczego nie zmieniło. Po drugie, wyłączenie hyperthreading w procesorze Skylake (to różni Skylake i Kentsfield) też niczego nie zmieniło, tj. nie usunęło niedermininizmu. Jakieś dalsze sugestie? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się