* [gentoo-user] openmp flag
@ 2012-09-25 14:42 James
2012-09-25 15:01 ` Michael Mol
0 siblings, 1 reply; 11+ messages in thread
From: James @ 2012-09-25 14:42 UTC (permalink / raw
To: gentoo-user
Hello,
background:
It seems there is a major push now to put openmp:
[1,2] into embedded systems [3].
So I looked at these [4] packages to find something
interesting to look deeper into related to openMP.
Blender immediately jumped out at me as a good example,
cause an old friend Ken Hughes is, imho, one of the
world's most amazing C programmers, and a stalwart at
the blender project.
OK, here's the question, I went to emerge blender
and found that the openmp flag is already set. {?}
Yet I looked everywhere and did not see the openmp flag
set (/etc/make.conf, /etc/portage/package.use)
so where is it getting set on my AMD workstation?
[ebuild N ] media-gfx/blender-2.49b-r2 USE="ffmpeg
nls ogg openmp -blender-game -openal -verse"
I feel like I should know (profiles etc) but, I'm a little
bit brain_dead this am, so any help is appreciated.
OH, anyone is encouraged to "chime in" about openmp
and your thoughts as to it's viability and usefulness.
Do you believe it will become a core technology,
embedded into GCC? Used widely?
James
[1] http://www.open-mpi.org/
[2] http://gcc.gnu.org/wiki/openmp
[3]
http://www.embedded.com/design/programming-languages-and-tools/4396218/What-the-new-OpenMP-standard-brings-to-embedded-multicore-software-design?cid=Newsletter+-+Whats+New+on+Embedded.com
[4] http://gentoobrowse.randomdan.homeip.net/use/openmp
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-user] openmp flag
2012-09-25 14:42 [gentoo-user] openmp flag James
@ 2012-09-25 15:01 ` Michael Mol
2012-09-25 19:06 ` Neil Bothwick
2012-09-26 18:25 ` Florian Philipp
0 siblings, 2 replies; 11+ messages in thread
From: Michael Mol @ 2012-09-25 15:01 UTC (permalink / raw
To: gentoo-user
On Tue, Sep 25, 2012 at 10:42 AM, James <wireless@tampabay.rr.com> wrote:
> Hello,
>
> background:
> It seems there is a major push now to put openmp:
> [1,2] into embedded systems [3].
>
> So I looked at these [4] packages to find something
> interesting to look deeper into related to openMP.
>
> Blender immediately jumped out at me as a good example,
> cause an old friend Ken Hughes is, imho, one of the
> world's most amazing C programmers, and a stalwart at
> the blender project.
>
>
> OK, here's the question, I went to emerge blender
> and found that the openmp flag is already set. {?}
> Yet I looked everywhere and did not see the openmp flag
> set (/etc/make.conf, /etc/portage/package.use)
> so where is it getting set on my AMD workstation?
>
> [ebuild N ] media-gfx/blender-2.49b-r2 USE="ffmpeg
> nls ogg openmp -blender-game -openal -verse"
>
> I feel like I should know (profiles etc) but, I'm a little
> bit brain_dead this am, so any help is appreciated.
Packages can choose to have USE flags enabled or disabled for them by
default. So blender likely has openmp enabled by default, without that
affecting any other packages.
>
> OH, anyone is encouraged to "chime in" about openmp
> and your thoughts as to it's viability and usefulness.
> Do you believe it will become a core technology,
> embedded into GCC? Used widely?
If you can use it, use it. OpenMP is little more than a set of
extensions to C (and C++) which allows the normally-scalar language to
do some things in a parallel fashion without resorting to the costs of
multithreading. This is good, because vector instructions have been
available in x86 since MMX came out, and improvements to the vector
instructions available to x86 still goes on.
Related are CUDA and OpenCL, which are two other systems for
parallelizing code. CUDA assumes you have access to an nVidia GPU (and
have a CUDA-enabled driver installed). OpenCL is a big more generic,
and supports dispatching to CUDA, CPU vector instructions or even
thread pools.
Personally, my recommendation is to enable everything you can get
working (be it, OpenMP, CUDA or OpenCL); vector processing is going to
be generally more efficient than scalar processing. You don't need to
worry about which is better unless you're a software developer. (And
if you're a software developer, go study up on their differences;
tradeoffs happen.)
--
:wq
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-user] openmp flag
2012-09-25 15:01 ` Michael Mol
@ 2012-09-25 19:06 ` Neil Bothwick
2012-09-25 21:56 ` [OT] " Peter Humphrey
2012-09-26 18:25 ` Florian Philipp
1 sibling, 1 reply; 11+ messages in thread
From: Neil Bothwick @ 2012-09-25 19:06 UTC (permalink / raw
To: gentoo-user
[-- Attachment #1: Type: text/plain, Size: 1125 bytes --]
On Tue, 25 Sep 2012 11:01:52 -0400, Michael Mol wrote:
> > OK, here's the question, I went to emerge blender
> > and found that the openmp flag is already set. {?}
> > Yet I looked everywhere and did not see the openmp flag
> > set (/etc/make.conf, /etc/portage/package.use)
> > so where is it getting set on my AMD workstation?
> >
> > [ebuild N ] media-gfx/blender-2.49b-r2 USE="ffmpeg
> > nls ogg openmp -blender-game -openal -verse"
> >
> > I feel like I should know (profiles etc) but, I'm a little
> > bit brain_dead this am, so any help is appreciated.
>
> Packages can choose to have USE flags enabled or disabled for them by
> default. So blender likely has openmp enabled by default, without that
> affecting any other packages.
However in this case, the flag is not set in the ebuild. Eix shows a +
before the USE flag if it is enabled in the ebuild.
The one place the OP didn't appear to check was the output from emerge
--info. The flag is set on this system, with a desktop profile.
--
Neil Bothwick
Everything should be made as simple as possible, but no simpler.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* [OT] Re: [gentoo-user] openmp flag
2012-09-25 19:06 ` Neil Bothwick
@ 2012-09-25 21:56 ` Peter Humphrey
2012-09-25 22:46 ` Alan McKinnon
0 siblings, 1 reply; 11+ messages in thread
From: Peter Humphrey @ 2012-09-25 21:56 UTC (permalink / raw
To: gentoo-user
On Tuesday 25 September 2012 20:06:15 Neil Bothwick wrote:
> Everything should be made as simple as possible, but no simpler.
That's a version of Occam's Razor, isn't it? Otherwise known as "Do not
complicate beyond necessity."
--
Rgds
Peter
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [OT] Re: [gentoo-user] openmp flag
2012-09-25 21:56 ` [OT] " Peter Humphrey
@ 2012-09-25 22:46 ` Alan McKinnon
2012-09-25 23:38 ` Michael Mol
0 siblings, 1 reply; 11+ messages in thread
From: Alan McKinnon @ 2012-09-25 22:46 UTC (permalink / raw
To: gentoo-user
On Tue, 25 Sep 2012 22:56:59 +0100
Peter Humphrey <peter@humphrey.ukfsn.org> wrote:
> On Tuesday 25 September 2012 20:06:15 Neil Bothwick wrote:
>
> > Everything should be made as simple as possible, but no simpler.
>
> That's a version of Occam's Razor, isn't it? Otherwise known as "Do
> not complicate beyond necessity."
>
It's a tautology.
You cannot make something any simpler than the simplest you can
possibly make it, so the last "but no simpler" is redundant
--
Alan McKinnon
alan.mckinnon@gmail.com
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [OT] Re: [gentoo-user] openmp flag
2012-09-25 22:46 ` Alan McKinnon
@ 2012-09-25 23:38 ` Michael Mol
0 siblings, 0 replies; 11+ messages in thread
From: Michael Mol @ 2012-09-25 23:38 UTC (permalink / raw
To: gentoo-user
On Tue, Sep 25, 2012 at 6:46 PM, Alan McKinnon <alan.mckinnon@gmail.com> wrote:
> On Tue, 25 Sep 2012 22:56:59 +0100
> Peter Humphrey <peter@humphrey.ukfsn.org> wrote:
>
>> On Tuesday 25 September 2012 20:06:15 Neil Bothwick wrote:
>>
>> > Everything should be made as simple as possible, but no simpler.
>>
>> That's a version of Occam's Razor, isn't it? Otherwise known as "Do
>> not complicate beyond necessity."
>>
>
> It's a tautology.
>
> You cannot make something any simpler than the simplest you can
> possibly make it, so the last "but no simpler" is redundant
The "but no simpler" is there as a reminder that it's possible to over-simplify.
--
:wq
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-user] openmp flag
2012-09-25 15:01 ` Michael Mol
2012-09-25 19:06 ` Neil Bothwick
@ 2012-09-26 18:25 ` Florian Philipp
2012-09-26 19:46 ` Michael Mol
2012-09-28 10:19 ` Peter Weilbacher
1 sibling, 2 replies; 11+ messages in thread
From: Florian Philipp @ 2012-09-26 18:25 UTC (permalink / raw
To: gentoo-user
[-- Attachment #1: Type: text/plain, Size: 3393 bytes --]
Am 25.09.2012 17:01, schrieb Michael Mol:
> On Tue, Sep 25, 2012 at 10:42 AM, James <wireless@tampabay.rr.com> wrote:
>> Hello,
>>
>> background:
>> It seems there is a major push now to put openmp:
>> [1,2] into embedded systems [3].
>>
>> So I looked at these [4] packages to find something
>> interesting to look deeper into related to openMP.
>>
>> Blender immediately jumped out at me as a good example,
>> cause an old friend Ken Hughes is, imho, one of the
>> world's most amazing C programmers, and a stalwart at
>> the blender project.
>>
>>
>> OK, here's the question, I went to emerge blender
>> and found that the openmp flag is already set. {?}
>> Yet I looked everywhere and did not see the openmp flag
>> set (/etc/make.conf, /etc/portage/package.use)
>> so where is it getting set on my AMD workstation?
>>
>> [ebuild N ] media-gfx/blender-2.49b-r2 USE="ffmpeg
>> nls ogg openmp -blender-game -openal -verse"
>>
>> I feel like I should know (profiles etc) but, I'm a little
>> bit brain_dead this am, so any help is appreciated.
>
> Packages can choose to have USE flags enabled or disabled for them by
> default. So blender likely has openmp enabled by default, without that
> affecting any other packages.
>
>>
>> OH, anyone is encouraged to "chime in" about openmp
>> and your thoughts as to it's viability and usefulness.
>> Do you believe it will become a core technology,
>> embedded into GCC? Used widely?
>
> If you can use it, use it. OpenMP is little more than a set of
> extensions to C (and C++) which allows the normally-scalar language to
> do some things in a parallel fashion without resorting to the costs of
> multithreading. This is good, because vector instructions have been
> available in x86 since MMX came out, and improvements to the vector
> instructions available to x86 still goes on.
>
I guess this is just poorly phrased but to clarify: OpenMP *does* use
multithreading and nothing else. It does not, in any way, make more use
of vector instructions than GCC without -fopenmp. I guess what you mean
is avoiding the costs of *manual* multithreading using POSIX threads and
the like.
If you want to use vector instructions for your own code, you should
look into compiler intrinsics (i.e. vector instructions as built-in C
functions).
http://ds9a.nl/gcc-simd/
And, just to nit-pick: OpenMP also works for Fortran.
> Related are CUDA and OpenCL, which are two other systems for
> parallelizing code. CUDA assumes you have access to an nVidia GPU (and
> have a CUDA-enabled driver installed). OpenCL is a big more generic,
> and supports dispatching to CUDA, CPU vector instructions or even
> thread pools.
>
> Personally, my recommendation is to enable everything you can get
> working (be it, OpenMP, CUDA or OpenCL); vector processing is going to
> be generally more efficient than scalar processing. You don't need to
> worry about which is better unless you're a software developer. (And
> if you're a software developer, go study up on their differences;
> tradeoffs happen.)
>
+1
By the way: Did anyone get good results out of dev-util/intel-ocl-sdk
for OpenCL? Some time ago I tested it with a package that supported both
OpenMP and OpenCL (not sure which) and OpenCL didn't really make an
impact on my Core i5.
Regards,
Florian Philipp
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 262 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-user] openmp flag
2012-09-26 18:25 ` Florian Philipp
@ 2012-09-26 19:46 ` Michael Mol
2012-09-26 21:03 ` Florian Philipp
2012-09-28 10:19 ` Peter Weilbacher
1 sibling, 1 reply; 11+ messages in thread
From: Michael Mol @ 2012-09-26 19:46 UTC (permalink / raw
To: gentoo-user
On Wed, Sep 26, 2012 at 2:25 PM, Florian Philipp <lists@binarywings.net> wrote:
> Am 25.09.2012 17:01, schrieb Michael Mol:
>> On Tue, Sep 25, 2012 at 10:42 AM, James <wireless@tampabay.rr.com> wrote:
>>> Hello,
>>>
>>> background:
>>> It seems there is a major push now to put openmp:
>>> [1,2] into embedded systems [3].
>>>
>>> So I looked at these [4] packages to find something
>>> interesting to look deeper into related to openMP.
>>>
>>> Blender immediately jumped out at me as a good example,
>>> cause an old friend Ken Hughes is, imho, one of the
>>> world's most amazing C programmers, and a stalwart at
>>> the blender project.
>>>
>>>
>>> OK, here's the question, I went to emerge blender
>>> and found that the openmp flag is already set. {?}
>>> Yet I looked everywhere and did not see the openmp flag
>>> set (/etc/make.conf, /etc/portage/package.use)
>>> so where is it getting set on my AMD workstation?
>>>
>>> [ebuild N ] media-gfx/blender-2.49b-r2 USE="ffmpeg
>>> nls ogg openmp -blender-game -openal -verse"
>>>
>>> I feel like I should know (profiles etc) but, I'm a little
>>> bit brain_dead this am, so any help is appreciated.
>>
>> Packages can choose to have USE flags enabled or disabled for them by
>> default. So blender likely has openmp enabled by default, without that
>> affecting any other packages.
>>
>>>
>>> OH, anyone is encouraged to "chime in" about openmp
>>> and your thoughts as to it's viability and usefulness.
>>> Do you believe it will become a core technology,
>>> embedded into GCC? Used widely?
>>
>> If you can use it, use it. OpenMP is little more than a set of
>> extensions to C (and C++) which allows the normally-scalar language to
>> do some things in a parallel fashion without resorting to the costs of
>> multithreading. This is good, because vector instructions have been
>> available in x86 since MMX came out, and improvements to the vector
>> instructions available to x86 still goes on.
>>
>
> I guess this is just poorly phrased but to clarify: OpenMP *does* use
> multithreading and nothing else. It does not, in any way, make more use
> of vector instructions than GCC without -fopenmp. I guess what you mean
> is avoiding the costs of *manual* multithreading using POSIX threads and
> the like.
Fair point.
>
> If you want to use vector instructions for your own code, you should
> look into compiler intrinsics (i.e. vector instructions as built-in C
> functions).
> http://ds9a.nl/gcc-simd/
Personally, I don't like compiler intrinsics; they're specific to
given compilers. I've tended to write code which is supposed to
compile on multiple compilers. (There's a world outside GCC...)
> And, just to nit-pick: OpenMP also works for Fortran.
True; this slipped my mind. :)
>
>> Related are CUDA and OpenCL, which are two other systems for
>> parallelizing code. CUDA assumes you have access to an nVidia GPU (and
>> have a CUDA-enabled driver installed). OpenCL is a big more generic,
>> and supports dispatching to CUDA, CPU vector instructions or even
>> thread pools.
>>
>> Personally, my recommendation is to enable everything you can get
>> working (be it, OpenMP, CUDA or OpenCL); vector processing is going to
>> be generally more efficient than scalar processing. You don't need to
>> worry about which is better unless you're a software developer. (And
>> if you're a software developer, go study up on their differences;
>> tradeoffs happen.)
>>
>
> +1
>
> By the way: Did anyone get good results out of dev-util/intel-ocl-sdk
> for OpenCL? Some time ago I tested it with a package that supported both
> OpenMP and OpenCL (not sure which) and OpenCL didn't really make an
> impact on my Core i5.
Haven't tried it, no. I've got a Radeon 6870, and I can only have one
OpenCL driver loaded at a time. (IBM has a middleman driver which
supports dispatching to multiple backends, but I believe its a for-pay
package.)
--
:wq
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-user] openmp flag
2012-09-26 19:46 ` Michael Mol
@ 2012-09-26 21:03 ` Florian Philipp
2012-09-26 22:02 ` Michael Mol
0 siblings, 1 reply; 11+ messages in thread
From: Florian Philipp @ 2012-09-26 21:03 UTC (permalink / raw
To: gentoo-user
[-- Attachment #1: Type: text/plain, Size: 4751 bytes --]
Am 26.09.2012 21:46, schrieb Michael Mol:
> On Wed, Sep 26, 2012 at 2:25 PM, Florian Philipp <lists@binarywings.net> wrote:
>> Am 25.09.2012 17:01, schrieb Michael Mol:
>>> On Tue, Sep 25, 2012 at 10:42 AM, James <wireless@tampabay.rr.com> wrote:
>>>> Hello,
>>>>
>>>> background:
>>>> It seems there is a major push now to put openmp:
>>>> [1,2] into embedded systems [3].
>>>>
>>>> So I looked at these [4] packages to find something
>>>> interesting to look deeper into related to openMP.
>>>>
>>>> Blender immediately jumped out at me as a good example,
>>>> cause an old friend Ken Hughes is, imho, one of the
>>>> world's most amazing C programmers, and a stalwart at
>>>> the blender project.
>>>>
>>>>
>>>> OK, here's the question, I went to emerge blender
>>>> and found that the openmp flag is already set. {?}
>>>> Yet I looked everywhere and did not see the openmp flag
>>>> set (/etc/make.conf, /etc/portage/package.use)
>>>> so where is it getting set on my AMD workstation?
>>>>
>>>> [ebuild N ] media-gfx/blender-2.49b-r2 USE="ffmpeg
>>>> nls ogg openmp -blender-game -openal -verse"
>>>>
>>>> I feel like I should know (profiles etc) but, I'm a little
>>>> bit brain_dead this am, so any help is appreciated.
>>>
>>> Packages can choose to have USE flags enabled or disabled for them by
>>> default. So blender likely has openmp enabled by default, without that
>>> affecting any other packages.
>>>
>>>>
>>>> OH, anyone is encouraged to "chime in" about openmp
>>>> and your thoughts as to it's viability and usefulness.
>>>> Do you believe it will become a core technology,
>>>> embedded into GCC? Used widely?
>>>
>>> If you can use it, use it. OpenMP is little more than a set of
>>> extensions to C (and C++) which allows the normally-scalar language to
>>> do some things in a parallel fashion without resorting to the costs of
>>> multithreading. This is good, because vector instructions have been
>>> available in x86 since MMX came out, and improvements to the vector
>>> instructions available to x86 still goes on.
>>>
>>
>> I guess this is just poorly phrased but to clarify: OpenMP *does* use
>> multithreading and nothing else. It does not, in any way, make more use
>> of vector instructions than GCC without -fopenmp. I guess what you mean
>> is avoiding the costs of *manual* multithreading using POSIX threads and
>> the like.
>
> Fair point.
>
>>
>> If you want to use vector instructions for your own code, you should
>> look into compiler intrinsics (i.e. vector instructions as built-in C
>> functions).
>> http://ds9a.nl/gcc-simd/
>
> Personally, I don't like compiler intrinsics; they're specific to
> given compilers. I've tended to write code which is supposed to
> compile on multiple compilers. (There's a world outside GCC...)
>
Yes. I haven't used it, either. I guess you could autoconf it and
replace it with vanilla C macros in most cases. Or as an easier
solution: #ifdef a vanilla C implementation together with the vector
code. Bonus points for added readability.
Kind of makes you wonder how well GCC can vectorize programs on its own
when you lay out your code in a way suitable for its own intrinsics
without actually using them.
>> And, just to nit-pick: OpenMP also works for Fortran.
>
> True; this slipped my mind. :)
>
>>
>>> Related are CUDA and OpenCL, which are two other systems for
>>> parallelizing code. CUDA assumes you have access to an nVidia GPU (and
>>> have a CUDA-enabled driver installed). OpenCL is a big more generic,
>>> and supports dispatching to CUDA, CPU vector instructions or even
>>> thread pools.
>>>
>>> Personally, my recommendation is to enable everything you can get
>>> working (be it, OpenMP, CUDA or OpenCL); vector processing is going to
>>> be generally more efficient than scalar processing. You don't need to
>>> worry about which is better unless you're a software developer. (And
>>> if you're a software developer, go study up on their differences;
>>> tradeoffs happen.)
>>>
>>
>> +1
>>
>> By the way: Did anyone get good results out of dev-util/intel-ocl-sdk
>> for OpenCL? Some time ago I tested it with a package that supported both
>> OpenMP and OpenCL (not sure which) and OpenCL didn't really make an
>> impact on my Core i5.
>
> Haven't tried it, no. I've got a Radeon 6870, and I can only have one
> OpenCL driver loaded at a time. (IBM has a middleman driver which
> supports dispatching to multiple backends, but I believe its a for-pay
> package.)
>
Isn't that what app-admin/eselect-opencl is for? I mean simple
switching, not dual application (which would be awesome, too).
Regards,
Florian Philipp
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 262 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-user] openmp flag
2012-09-26 21:03 ` Florian Philipp
@ 2012-09-26 22:02 ` Michael Mol
0 siblings, 0 replies; 11+ messages in thread
From: Michael Mol @ 2012-09-26 22:02 UTC (permalink / raw
To: gentoo-user
On Wed, Sep 26, 2012 at 5:03 PM, Florian Philipp <lists@binarywings.net> wrote:
> Am 26.09.2012 21:46, schrieb Michael Mol:
>> On Wed, Sep 26, 2012 at 2:25 PM, Florian Philipp <lists@binarywings.net> wrote:
>>> Am 25.09.2012 17:01, schrieb Michael Mol:
>>>> On Tue, Sep 25, 2012 at 10:42 AM, James <wireless@tampabay.rr.com> wrote:
[snip]
>>>
>>> If you want to use vector instructions for your own code, you should
>>> look into compiler intrinsics (i.e. vector instructions as built-in C
>>> functions).
>>> http://ds9a.nl/gcc-simd/
>>
>> Personally, I don't like compiler intrinsics; they're specific to
>> given compilers. I've tended to write code which is supposed to
>> compile on multiple compilers. (There's a world outside GCC...)
>>
>
> Yes. I haven't used it, either. I guess you could autoconf it and
> replace it with vanilla C macros in most cases. Or as an easier
> solution: #ifdef a vanilla C implementation together with the vector
> code. Bonus points for added readability.
And the added maintenance, doubling the number of builds to test. :)
>
> Kind of makes you wonder how well GCC can vectorize programs on its own
> when you lay out your code in a way suitable for its own intrinsics
> without actually using them.
[snip]
>>> By the way: Did anyone get good results out of dev-util/intel-ocl-sdk
>>> for OpenCL? Some time ago I tested it with a package that supported both
>>> OpenMP and OpenCL (not sure which) and OpenCL didn't really make an
>>> impact on my Core i5.
>>
>> Haven't tried it, no. I've got a Radeon 6870, and I can only have one
>> OpenCL driver loaded at a time. (IBM has a middleman driver which
>> supports dispatching to multiple backends, but I believe its a for-pay
>> package.)
>>
>
> Isn't that what app-admin/eselect-opencl is for? I mean simple
> switching, not dual application (which would be awesome, too).
Dual-application is the circumstance IBM handles. Including
dispatching over the network. :)
--
:wq
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-user] openmp flag
2012-09-26 18:25 ` Florian Philipp
2012-09-26 19:46 ` Michael Mol
@ 2012-09-28 10:19 ` Peter Weilbacher
1 sibling, 0 replies; 11+ messages in thread
From: Peter Weilbacher @ 2012-09-28 10:19 UTC (permalink / raw
To: gentoo-user
On 2012-09-26 20:25, Florian Philipp wrote:
> Am 25.09.2012 17:01, schrieb Michael Mol:
>> On Tue, Sep 25, 2012 at 10:42 AM, James <wireless@tampabay.rr.com>
>> wrote:
>>> OH, anyone is encouraged to "chime in" about openmp
>>> and your thoughts as to it's viability and usefulness.
>>> Do you believe it will become a core technology,
>>> embedded into GCC? Used widely?
I didn't understand this statement. It is a core "technology" and has
been
part of GCC since 4.2 or so. I certainly have used it since several
years
in some of my projects. But it certainly needs some little
modifications
to the code to work.
>> If you can use it, use it. OpenMP is little more than a set of
>> extensions to C (and C++) which allows the normally-scalar language
>> to
>> do some things in a parallel fashion without resorting to the costs
>> of
>> multithreading. This is good, because vector instructions have been
>> available in x86 since MMX came out, and improvements to the vector
>> instructions available to x86 still goes on.
>
> I guess this is just poorly phrased but to clarify: OpenMP *does* use
> multithreading and nothing else. It does not, in any way, make more
> use
> of vector instructions than GCC without -fopenmp. I guess what you
> mean
> is avoiding the costs of *manual* multithreading using POSIX threads
> and
> the like.
To get GCC to try and use vectorization pass -ftree-vectorize.
(You can see what loops it optimized using vectorization with
-ftree-vectorizer-verbose=1).
Cheers,
Peter.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2012-09-28 10:22 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-25 14:42 [gentoo-user] openmp flag James
2012-09-25 15:01 ` Michael Mol
2012-09-25 19:06 ` Neil Bothwick
2012-09-25 21:56 ` [OT] " Peter Humphrey
2012-09-25 22:46 ` Alan McKinnon
2012-09-25 23:38 ` Michael Mol
2012-09-26 18:25 ` Florian Philipp
2012-09-26 19:46 ` Michael Mol
2012-09-26 21:03 ` Florian Philipp
2012-09-26 22:02 ` Michael Mol
2012-09-28 10:19 ` Peter Weilbacher
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox