UPC: общий указатель на локальную память
Я изучаю унифицированный параллельный C для высокопроизводительного компьютерного курса.
Может кто-нибудь объяснить, почему "не рекомендуется" иметь общий указатель на локальную память?
Единственная причина, по которой я могу придумать, это наличие висящего указателя.
Пожалуйста, смотрите эталонные изображения:
[
Источники: http://hpac.rwth-aachen.de/teaching/sem-lsc-13/UPC.pdf http://www.cs.fsu.edu/~engelen/courses/HPC/Languages.pdf
1 ответ
Вы правы - причина в основном в вероятности свисающего указателя.
Более конкретно, значение указателя на локальное значение обычно имеет смысл только для потока, который его создал, поэтому размещение этого значения в общей структуре данных часто не имеет смысла, поскольку другие потоки могут воспринимать его только как непрозрачное значение, которое нельзя безопасно разыменовать, Кроме того, значение указателя на локальное значение не может быть запрошено для информации о сходстве, поэтому более широкая структура данных или алгоритм должны каким-то образом поддерживать эту информацию о сходстве, чтобы знать, где указатель действителен для использования.