0

The gist of the question is:

Do you know any projects that aim to bring OpenHMPP support to GCC? I could also possibly live with affordable commercial compilers, but it's very unlikely, because I prefer Linux, and I would like the compiler to support non-x86 architectures as well.

And the background story:

I know OpenCL and CUDA people will bash me, but here goes my experience/opinion: I've been pursuing some toy projects to get into many core processing using CUDA and OpenCL. I feel that it's such a mess to set up those development environments (especially under linux and especially if you've the slightest bit of irregularity in your system). Even when you set them up, it's still a mess to run them anywhere other than your development environment. Finally (and probably the most importantly) these languages are very verbose and tiresome. I feel like they're the assembler of many-core processing. Compare them to OpenMP, and you see how they could actually be.

At this point, OpenHMPP comes into the scene. It uses #pragma statements like OpenMP and it seems to be a very good step in the right direction. However, it's very hard to find compilers for it. CAPS Enterprize and Pathscale do have OpenHMPP support, but they're very expensive (€4000 for CAPS, I couldn't find the price for Pathscale). And correct me if I'm wrong, but CAPS seems to support C, not C++.

So, we return to the gist. It would be like a dream, to have OpenHMPP support in GCC. Do you know of any open-source projects or any affordable alternatives? Maybe even, do you know of alternatives to OpenHMPP that are easier to find support for.

enobayram
  • 4,650
  • 23
  • 36

1 Answers1

1

If I understand you correctly, you are looking for ways to simplify access to accelerator devices, which may be GPUs as well as multi-core CPUs. This is a field with a lot of academic work happening right now, resulting in many publications describing such frameworks, however only few are actually available. In fact, the reasons you are stating are the basis of my research, which is also far from complete or in a state usable by anyone else...

The only thing I know, that comes close to what you seek (using #pragmas to access accelerators), would be MGP from the Virtual OpenCL package. All other solutions are more intrusive by requiring the use of their API. I have not yet had a closer look to AMP for C++, but it might be interesting if it picks up some pace.

Alex P.
  • 760
  • 5
  • 6
  • I just came across a paper that mentions the [PGI accelerator compilers](http://www.pgroup.com/resources/accel.htm), which I totally forgot in my answer. This is from the Portland Group, that also created the x86-CUDA compiler. – Alex P. Feb 07 '12 at 15:59