Skip to content

Caracter nedeterminist rulare kernel

Am un cod de kernel care la diferite rulări are rezultate diferite pentru aceleași date de input.

Proiectul: git@zeus.arh.pub.ro:mbalan/when-1-bubble-sort-is-just-not-enough.git

Branch-ul bug-nedet: http://zeus.arh.pub.ro/gitlab/mbalan/when-1-bubble-sort-is-just-not-enough/tree/bug-nedet

Kernelul este in src/sort.cpp http://zeus.arh.pub.ro/gitlab/mbalan/when-1-bubble-sort-is-just-not-enough/blob/bug-nedet/src/sort.cpp

Apelat din src/main.cpp http://zeus.arh.pub.ro/gitlab/mbalan/when-1-bubble-sort-is-just-not-enough/blob/bug-nedet/src/main.cpp

Pentru rulare: make run2

Programul citește vectorul din io/vector.in, îl trimite în LS[0], rulează kernelul apoi citește vectorul tot din LS[0]. Cu make run2 se afișează după rulare vectorul in și vectorul out (pentru o vizualizare mai ușoară a rezultatului)

Kernelul sortează perechile care încep de la poziții pare in: 18 77 75 40 35 98 ... out: 18 77 40 75 35 98 ... ^^^^^^

Problema este că la unele rulări funcționează, la altele nu modifică nimic. Dacă după executeKernel urmează un sleep sau o afișare crește procentul de rulări corecte altfel domină rulările care nu modifică vectorul.


Acesta este în mare mail-ul pe care i l-am dat lui Lucian și la care mi-a răspuns să deschid un issue.