[mapserver-users] Enhancing MapServer performance with GPUs

Rahkonen Jukka (Tike) jukka.rahkonen at mmmtike.fi
Tue Jun 17 01:29:25 PDT 2014


Hi,

This reminds me that I wrote on 15th May, 2014 about slowish performance with png8 output when compared with gif. These reports are from the same situation
http://latuviitta.org/documents/MS_64_gif.png
http://latuviitta.org/documents/MS_64_png8.png

Gif is not only faster but also much more stable. Test environment:

- Output 800x600 px WMS GetMaps
- Simple polygons, style with only outlines
- Mapserver 6.4, fcgi
- CentOS 64-bit
- Real server environment

Png outputformat was configured as

OUTPUTFORMAT
      NAME 'AGG_Q'
      MIMETYPE "image/png"
      DRIVER "AGG/PNG"
      EXTENSION "png"
      IMAGEMODE RGB
      FORMATOPTION "COMPRESSION=2"
      FORMATOPTION "QUANTIZE_FORCE=ON"
      FORMATOPTION "QUANTIZE_DITHER=OFF"
      FORMATOPTION "QUANTIZE_COLORS=256"
  END

Gif output was totally stable at request rate 20/second for the whole 10 minutes run while png8 tolerates only about 15 request/sec and showed pretty slow response times already at low load.

-Jukka Rahkonen-


Lähettäjä: mapserver-users-bounces at lists.osgeo.org [mailto:mapserver-users-bounces at lists.osgeo.org] Puolesta Adam Eskreis
Lähetetty: 17. kesäkuuta 2014 1:51
Vastaanottaja: Paul Ramsey
Kopio: mapserver-users
Aihe: Re: [mapserver-users] Enhancing MapServer performance with GPUs

It's been a while since I've looked at the Mapserver code, but if I'm not mistaken it uses the fixed function pipeline for OpenGL which isn't going to be able to take advantage of all of those wonderful shader cores very well.  If you wrote your own renderer using OpenGL 4.0+, you might be able to get a substantial boost in rendering performance, but as Paul said, rendering may not be your bottleneck.  You should ensure that it is before spending a lot of money on GPU servers.  Also something to keep in mind, when you render with OpenGL you must convert all of your polygons into triangle meshes, which can be an extremely costly operation, especially for concave polygons that contain holes, which are quite common in GIS data.

On Mon, Jun 16, 2014 at 5:42 PM, Paul Ramsey <pramsey at cleverelephant.ca> wrote:
Non-trivial places time can be spent:

- CGI startup (if you aren't using FastCGI)
- reading layers (if you have a lot of them! it's only a ms or two per
layer, but if you have 100 layers...)
- reading data
- rendering data
- compressing output images (more than you'd expect)

I'd expect GPU assisted rendering to be a win only for a narrow
minority of cases, it's not a predominant time sink as often as one
would expect. Plus for all the speed once you have the GPU chain set
up, the setting up of the GPU can be costly, and for a CGI program
like MapServer, that's a big deal.

P


On Sun, Jun 15, 2014 at 2:57 PM, Even Rouault
<even.rouault at mines-paris.org> wrote:
> Le dimanche 15 juin 2014 23:50:05, Visit Hirankitti a écrit :
>> Dear list memers,
>>
>> My name is Visit, a newbie of this forum. I have been using MapServer for
>> at least 4 years now on many research projects. It has served my research
>> projects quite well.
>>
>> Recently I am using MapServer to develop a real-world enterprise web
>> application.
>> I am developing a web-based GIS application using MapServer to serve
>> thousands of users, and one of overheads of the system is on the map
>> rendering provided by MapServer.
>>
>> At the moment the server I use to run MapServer doesn't have a graphic card
>> (i.e. GPUs), but I wonder if I really want high performance of
>> map-rendering from MapServer, can a graphic card (i.e. GPUs) equipped with
>> the server enhance MapServer's map rendering speed and hence improve its
>> map service speed?
>>
>> As a graphic card contains hundreds of GPU cores, e.g. NVDIA CUDA platform,
>> and each core can compute and draw polygons in parallel, so I think this
>> can improve the speed of map rendering (if used with MapServer)
>> substantially. Do I understand this correctly?
>
> You'll have to profile where the time is exactly spent in MapServer. If it is
> in pulling data from sources, or in the rendering part itself. There's a
> OpenGL backend available in recent MapServer versions that could potentially
> speed up rendering, but it is likely a bit experimental and might need more
> work.
>
>>
>> Thanks for your advice in advance,
>>
>> Visit Hirankitti Ph.D.
>>
>> Intelligent Communication and Transportation Lab
>> King Mongkut's Institute of Technology Ladkrabang
>> Thailand
>
> --
> Geospatial professional services
> http://even.rouault.free.fr/services.html
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________
mapserver-users mailing list
mapserver-users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users



More information about the mapserver-users mailing list