<div dir="ltr">I'm not totally sure about this, but I *think* you need to instantiate a<div>separate PJ object for each parallel process.</div><div><br></div><div>Otherwise, as far as I can see, any push/pop operations (and potentially</div><div>others as well)</div><div>may get mixed up between non-synchronous parallel operations.</div><div><br></div><div>For simple operations things may work - but don't count on it.</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Den søn. 21. mar. 2021 kl. 21.31 skrev José Luis García Pallero <<a href="mailto:jgpallero@gmail.com">jgpallero@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello:<br>
<br>
Until now I though (I can't say the reason...) that the function<br>
proj_trans_generic() worked in parallel, but inspecting the source<br>
code in 4D_api.cpp that the transformations are done individually<br>
inside a for loop by calling the function proj_trans(). So the<br>
question is: which is the correct way to perform a transformation in<br>
parallel using an OpenMP environment? For example a code such<br>
<br>
#pragma omp parallel for default(none) private(i,coord2) shared(n,P,coord1)<br>
for(i=0;i<n;i++)<br>
{<br>
    coord2 = proj_trans(P,PJ_FWD,coord1);<br>
}<br>
<br>
I see in the documentation that for multithreading a context must be created as<br>
<br>
C = proj_context_create();<br>
<br>
ans then the variable C must be used in the projection creation as<br>
<br>
P = proj_create(C,parameters);<br>
<br>
But it is at this point when i don't understand the use of the<br>
transformation in OpenMP. Means the creation of the context C that the<br>
proj_trans() function can be used safely in an OpenMP piece of code<br>
such as the for loop presented before? Can anyone share an example of<br>
PROJ in OpenMP?<br>
<br>
Thanks<br>
-- <br>
*****************************************<br>
José Luis García Pallero<br>
<a href="mailto:jgpallero@gmail.com" target="_blank">jgpallero@gmail.com</a><br>
(o<<br>
/ / \<br>
V_/_<br>
Use Debian GNU/Linux and enjoy!<br>
*****************************************<br>
_______________________________________________<br>
PROJ mailing list<br>
<a href="mailto:PROJ@lists.osgeo.org" target="_blank">PROJ@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/proj" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/proj</a><br>
</blockquote></div>