[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 20040920: performance enhancement for NetCDF F90 Interface



>To: address@hidden
>From: Mathis Rosenhauer <address@hidden>
>Subject: NetCDF F90 Interface
>Organization: German Climate Computing Center
>Keywords: 200409211415.i8LEFLnJ002151 netCDF Fortran90

Hi Mathis,

Wow, I'm surprised no one else noticed that problem, I think it will
make a big difference to anyone using the Fortran 90 interface.  It
looks like the original code never called any of the
nc_{put,get}_vara_ functions, but instead just used the
nc_{put,get}_varm_ functions with a default map to emulate them,
greatly increasing the function call overhead.

On behalf of the users of the netCDF f90 interface, thank you!  I will
put this fix into the 3.6.0 release immediately.

--Russ


On 21 Sep 2004 09:11:23 -0600, Mathis Rosenhauer wrote:

Hi Russ,

I am working with some code here which uses the fortran 90 interface
of NetCDF. The performance of writing NetCDF files was very poor
compared to raw output. The code calls nf90_put_var() with simple
arrays, no stride or map. However, it ends up in nc_put_varm_double()
which calls nc_put_vara_double() very often. On our NEC SX6 this
caused a huge overhead.

Attached is a patch which may help other platforms as well - unless I
broke something. I stripped out all SX specific stuff. The patch is
against 3_6_0-beta3 but should also work with older versions.

Cheers,

Mathis

-- 
Mathis Rosenhauer                  http://www.dkrz.de/whois?rosenhauer
Application Software               Phone: +49 40 41173 395
German Climate Computing Center    Pavillon 107

---559023410-341603450-1095776107=:27017
Content-Type: APPLICATION/x-gunzip; name="patchf90.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <address@hidden>
Content-Description: 
Content-Disposition: attachment; filename="patchf90.gz"

H4sICDMjUEEAA3BhdGNoZjkwAN1VXW/aMBR9Hr/CD1NJlITGSehKpEmwbp2q
tXQa7V6DC04bKTEocSq2X79r8kGwoSXVpKEFCOZe3+ODz4nvPApDZOWfUtTr
nTLKZ/PQcoOzwLYeKCduwGnGT7N0dhoObPEh+aqXeEiJdCzLagXxzrFtbNl9
y/GQ4/pe33fsnl1dyLAh3zEMQ11KVHqWPbAcjLDnO32/f6ZUDofI8rB5hgy4
f0DDYQfNaRgxqk3HlwM7wJf34645ZYAadL/f393++Prlbho8kzTofrsaf/45
ur7/ojeLgpuqRCpIgu74QtRsT5/smZ5tphuN6aM908ludLxnOt4xPfGClDKS
UCiIQohq0/cYxpt8N1hHIMDWOV3PWZUVP8Wrg2ocbRpBegWxeRv7FPmArjhN
GYmzHgTRS8lDTbWrVrjEtoRR+sjBvuu+5q99IA2ruef7rOa6wmpwx3jttUMu
0O6R8sISEePYlCOOEjHRycHYy7ysSymJTWm9KrZ9vQF8vsgfYrpNtIihjoEQ
cKaPNJWWqvYY+X4DjICoK96EqiLqdSLA2zAlmy1uRhwlYrbArmnK8hFFvtbY
NSdVPrJXvtbgqnyklg+1ky9R5EtekO8QolvgsnyJIl/S9gmpacryJYp8NXa7
A++ZEgDwzpstsxk8+IBr1MiN0/H7/ZcPNqn4oN7peOYAGXDHTvNAixczEt+Q
JQw1P4t+Uy0hS10XqY8Ihpqv13PXfVa0NUhtiVL20mlXY7NobiLYX/G1xp5w
kvJyfLHIGa/jMIeaNQFTdDeSx/yK8VGakl96xyrMGWe0fA7EEEWhtkxpRhnX
sjUGsOVPlB1Ec/JWmgo5QyYnL2xsLTxqsfAziXOaVftO2Rz+c/mjSGkXt9e3
44kO68BOPJEl1SR+IJuJikyJVsAJsDBnMx4t2IZv+4dA9n9L65fGtS0Mbyza
uWf7rveq61sZ3jXPwfByBz8iw1c6H5PPK07/wt5/y5zQPtQTugq2sWlVs+OE
Vj0ne7VZ/J8YFlrm5jg5JtduETsi6/4BdoaqD40PAAA=

---559023410-341603450-1095776107=:27017--

--
NOTE: All email exchanges with Unidata User Support are recorded in the
Unidata inquiry tracking system and then made publicly available
through the web.  If you do not want to have your interactions made
available in this way, you must let us know in each email you send to us.