[gradsusr] Speed optimizations

Travis Wilson - NOAA Federal travis.wilson at noaa.gov
Mon Jan 18 14:11:06 EST 2016


Hi Jennifer and Wesley,

I appreciate your comments, they are very helpful.

Wesley, the conversion to a lat/lon grid is exactly what we needed.  As
what Jennifer said, eliminating PDEF solves the problem!  Also, thank you
for the suggestion on converting the grib packing to c1, this is going to
save us quite a bit of space!

Thanks,
Travis

On Fri, Jan 15, 2016 at 4:59 AM, Wesley Ebisuzaki - NOAA Federal <
wesley.ebisuzaki at noaa.gov> wrote:

> Travis,
>
>    Opening your ctl file takes about 6 seconds on my linux machine.  A
> display takes about 2 seconds.
> The memory requirements for displaying the field ranges from 55% to 92% of
> the total memory
> of a 16 GB machine.  Perhaps your displays are slow because you are using
> swap/virtual memory.
>
>   You mentioned that 1km radar fields are part of an archive.  You can
> reduce the file size by
> using special values for undefined values rather than a bitmap and by
> using wgrib2's
> more efficient packing routines.    For your sample file, you can save
> 56%.   This will speed
> up the I/O time.  The downside is that using special values for undefined
> is not supported by
> all programs.  Most grib software supports special values because special
> values have been used
> by NDFD grib2 files for several years.  However, YMMV.
>
> bash-4.1$ wgrib2 1kmradar_201512241600.grib2 -set_grib_type c1 -grib_out
> 1kmradar_201512241600.grib2.c1
> 1:189:d=2015122416:BREF:surface - surface:anl:
> bash-4.1$ ls -l 1kmradar_201512241600.grib2*
> -rw-r--r--. 1 wd51we wd5 2597063 Jan 15 07:01 1kmradar_201512241600.grib2
> -rw-r--r--. 1 wd51we wd5 1152668 Jan 15 07:18
> 1kmradar_201512241600.grib2.c1
>
> Jennifer also mentioned that the PDEFS require calculation by GrADS.  You
> can use
> wgrib2 to interpolate to a lat-lon grib file.  This has the advantage of
> eliminating the
> pdef calculation and reducing memory footprint of GrADS.  If your computer
> is
> running out of memory, this should be a big speed up.
>
> wgrib2 1kmradar_201512241600.grib2 -set_grib_type c1 -new_grid_winds earth
>     -new_grid latlon -129.209875:6541:0.0100363502228856
>     21.747560:3298:0.00923772727272727 1kmradar_201512241600.grib2.latlon
>
> I used the same weird lat-lon grid as used in your ctl file.  Opening the
> lat-lon
> grid was probably less than 1 second.  Plotting started immediately.
>
> So the slowness of in your system was probably caused by too little
> computer
> memory.  The slowness in my system was caused by the interpolation from
> lambert-conformal to the lat-lon grid.  NetCDF was probably faster because
> (1) it allowed partial grid to be extracted which reduced the memory
> footprint
> and avoided swapping and (2) the NetCDF data was already stored in a
> lat-lon grid.
> You mentioned that the NetCDF file was 3x times larger.  You had not used
> a bitmap, you
> would have found that the NetCDF file was 6x larger.  (Now waiting for a
> some NetCDF user to reduce that number.)
>
> Wesley
>
>
>
> On Thu, Jan 14, 2016 at 8:57 PM, Jennifer M Adams <jadams21 at gmu.edu>
> wrote:
>
>>
>> On Jan 14, 2016, at 8:25 PM, Travis Wilson - NOAA Federal <
>> travis.wilson at noaa.gov> wrote:
>>
>> Hi James,
>>
>> I converted the file to a netcdf via sdfwrite and you are right.  The
>> file opens almost instantly.  I wonder why grib files are so slow to open
>> and if this could be avoided?
>>
>> Please see my earlier email for an explanation.
>>
>> It is worth noting that the netcdf file is about 3x larger even with
>> using the -zip option.  Unfortunately since this is an archive, we can't
>> just increase the data stored by a factor of 3.
>>
>> Did you use the -flt option?
>> If file size is really a problem, you can archive the grib2 files but use
>> the netcdf file for the real-time web server — overwrite the netcdf file
>> every time a new radar file comes in.
>>
>>
>> I like your idea of the OPenDAP server, we may have to check into this if
>> there is no other option.
>>
>> I don’t think this is going to save you any time because under the hood
>> of the opendap server, the I/O problems remain. You’re just adding overhead
>> by putting it behind GDS, which takes extra time to write out the subsets
>> in flat binary and then send them to the opendap client.
>> —Jennifer
>>
>>
>>
>>
>>
>>
>> On Thu, Jan 14, 2016 at 4:05 PM, James T. Potemra <jimp at hawaii.edu>
>> wrote:
>>
>>> Hi Travis,
>>>
>>> This seems a little strange to me.  I did a quick test with one of our
>>> higher res data sets (global bathy) that is 21600 by 64800 (x,y) and it
>>> loads almost instantly in GrADS.  Of course generating a display takes a
>>> long time, and my test was done on a netCDF file.
>>>
>>> This aside, could you run the data through an OPeNDAP server?  Even
>>> though it would be on the same machine, you could use the server to subset
>>> via the DAP call, rather than relying on GrADS to load the entire file.
>>>
>>> Jim
>>>
>>>
>>> On 1/14/16 12:54 PM, Travis Wilson - NOAA Federal wrote:
>>>
>>> Hi,
>>>
>>>
>>> At the NWS we have been using grads to create images from grib files on
>>> the fly.  Users use a front end interface to select a model (which is just
>>> a grib file on a server), field, and view, and submits a job.  Within 3-4
>>> seconds the server is able to launch grads, open the grib file, and produce
>>> 50-100 images for the user to view.  This works extremely well for CONUS
>>> datasets with medium to coarse resolutions (up to 6km).
>>>
>>> We have started using higher resolution grib files (1 km radar files are
>>> attached) and they are substantially slower.  The main problem comes from
>>> opening the file.  If a user selects radar for Northern California, it
>>> takes grads approximately 18 seconds just to open the 1km CONUS radar file
>>> (scanning descriptor file)..and then grads plots rather quickly.
>>>
>>>
>>> A workaround we have been using is to subset the data on the fly (since
>>> we don’t know the area the user will select).  This example regrids the
>>> CONUS radar for northern California.
>>>
>>>
>>> wgrib2 1kmradar_201512241600.grib2 -small_grib 233:243 36.8:42.8
>>> 1kmradar_201512241600.grib2.small
>>>
>>>
>>> The small grib file will open in GrADS in about 1 second.  Regridding,
>>> and remaking the ctl and idx is substantially faster, but still requires a
>>> lot of time.  My question is, is there any way to speed up the scanning of
>>> the CONUS descriptor file without subset the grib file.  For example, grads
>>> would not scan the entire conus descriptor file when we just need to look
>>> at Northern California (or whatever portion of the US the users selects).
>>>
>>>
>>> We appreciate all the help,
>>>
>>> Travis
>>>
>>>
>>> _______________________________________________
>>> gradsusr mailing listgradsusr at gradsusr.orghttp://gradsusr.org/mailman/listinfo/gradsusr
>>>
>>>
>>>
>>> _______________________________________________
>>> gradsusr mailing list
>>> gradsusr at gradsusr.org
>>> http://gradsusr.org/mailman/listinfo/gradsusr
>>>
>>>
>> _______________________________________________
>> gradsusr mailing list
>> gradsusr at gradsusr.org
>> http://gradsusr.org/mailman/listinfo/gradsusr
>>
>>
>>
>> _______________________________________________
>> gradsusr mailing list
>> gradsusr at gradsusr.org
>> http://gradsusr.org/mailman/listinfo/gradsusr
>>
>>
>
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org
> http://gradsusr.org/mailman/listinfo/gradsusr
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20160118/83b6902b/attachment.html 


More information about the gradsusr mailing list