Hi all,
Actually, I am asking this more out of cruosity than need.
I am using native mode on Xeon Phi coprocessor card (60 cores). What happens when cores issue too many memory writes? Normally (to my knowledge) they get queued in one of 8 GDDR5 memory channels. Is it possible for them to overflow? And what will happen (if/when) this occurs?
The situation that raised my cruosity;
I was running stl qsort on a single card (in native mode). When the array structure I use gets too big, process was getting killed. I thought, maybe this is a time issue. Then, I implemented a parallel version of this, using hybrid merge & quick sort. Process still gets killed (altough it was much faster). The array I was sorting was globally clustered/sorted but needed local sorts. Thinking my parallel quicksort based implementation would not work efficiently in such a case, I used multiple local quick sort operations. And problem vanished. All I did was reduce the number of swaps therefore memory writes (I think - because I used malloc to allocate the array structure).
I think I am now facing the same thing in different segments in my code. But plan to re-implement efficiently (mostly because I bugs me). But I would like to learn what happens in cases where extreme amount of memory IO operations are queued. Any insight (not necessarily on this specific problem) is appreciated.
Thanks in advance & Thanks for taking the time
Matara Ma Sukoy