The problem with specialized processors is that they are a scarce resource
that must be managed rather than shared. They're just dandy when a server
has a single specialized load, but on a server with multiple clients, one
guy gets the specialized processor and everyone one else waits.
The best way for Firebird to do parallism is to move towards fine grain
multi-threading so at least all available processors can keep busy doing
useful work. Trying to accelerate a single operation with non-shared
hardware is almost always a net loss.
You might remember that the original DEC JRD was the core for what was
eventually be the DEC database machine. We had people on specialized
hardware and specialized microcode. The problem was that whenever we found
a high overhead operation that could be accelerated, we found a better
software solution before either a hardware or microcode solution could be
developed.
The Falcon group at MySQL had a long meeting with the Intel parallelization
tool group. At the end of the day, everyone was in agreement that with
more processes than cores, fine grain multi-threading using user mode
interlocked instructions for thread synchronization was by far the best
solution.
On Thursday, March 19, 2015, Leyne, Sean <s...@broadviewsoftware.com> wrote:
> Marius,
>
> > I wonder how we can use the power of cuda in the engine
> >
> > http://devblogs.nvidia.com/parallelforall/power-cpp11-cuda-7/#more-4999
>
> I don't think we should focus on CUDA specifically but on parallel
> processing.
>
> There are a variety of technologies (OpenCL, OpenMP perhaps even OpenMPI)
> which provide parallelism
>
> Personally, I have been thinking about how the engines current
> sorting/grouping logic could be modified to enable parallel execution. IMO
> there are system CPU resources which could be used to improve overall
> engine performance.
>
> Consider the Intel Xeon PHI (Knights Corner) coprocessor which can provide
> 60 "cpus" of processing via high-speed interconnect, all via OpenMPI, these
> could be used to perform the sorting/grouping while query threads reads the
> rows and build the sort buffers.
>
> The next version of the PHI (Knights Landing) will provide true
> independent functionality of each of "cpus" (Interview with James
> Reinders: future of Intel MIC architecture, parallel programming, education
> <https://www.youtube.com/watch?v=ypvV-qLJMAs&feature=youtu.be&t=15m24s>)
>
>
> Sean
>
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming The Go Parallel Website,
> sponsored
> by Intel and developed in partnership with Slashdot Media, is your hub for
> all
> things parallel software development, from weekly thought leadership blogs
> to
> news, videos, case studies, tutorials and more. Take a look and join the
> conversation now. http://goparallel.sourceforge.net/
> Firebird-Devel mailing list, web interface at
> https://lists.sourceforge.net/lists/listinfo/firebird-devel
>
--
Jim Starkey
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel