Unterschied zwischen OpenMP und privaten threadprivate

Ich bin versucht zu parallelisieren, ein C-Programm mit OpenMP.

Ich würde gerne mehr wissen über:

  1. Die Unterschiede zwischen den threadprivate - Richtlinie und der private - Klausel und
  2. In welchen Fällen müssen wir alle von Ihnen verwenden.

Soweit ich weiß, der Unterschied ist der Globale Geltungsbereich, der mit threadprivate und der erhaltene Wert über parallele Regionen. Ich fand an mehreren Beispielen, dass, wenn ein Stück code enthält einige Globale/statische Variablen, die müssen privatisiert werden, werden diese Variablen in einem threadprivate Liste und Ihre ursprünglichen Werte kopiert man in die private Kopien mit copyin.

Jedoch gibt es eine Regel, die verhindert, dass uns der private Klausel zum Umgang mit globalen/statischen Variablen? vielleicht irgendein detail?

Konnte ich nicht finden, eine Erklärung, in der OpenMP3.0-Spezifikation.

InformationsquelleAutor der Frage L30nardo SV. | 2013-08-02

Schreibe einen Kommentar