max2491 Posted August 6, 2019 Report Share Posted August 6, 2019 (edited) 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).. Edited August 21, 2019 by max2491 brak odpowiedzi Link to comment Share on other sites More sharing options...
max2491 Posted August 7, 2019 Author Report Share Posted August 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? Link to comment Share on other sites More sharing options...
max2491 Posted August 13, 2019 Author Report Share Posted August 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? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now