Page 1 of 1
Is there ImageMagick multicore support (OpenMP) for OSX?
Posted: 2012-09-24T03:09:45-07:00
by CousinCocaine
I am running Mountin Lion OSX 10.8.2 and I am using ImageMagick for manipulating large image files (microscopy images, 30.000*30.000 pixels).
I installed ImageMagick using MacPorts using the following command, no errors occurred:
When I run my image manipulation scripts, only one core is used. Checking for multicore support gives:
Code: Select all
$ identify -version
Version: ImageMagick 6.7.9-0 2012-09-21 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenCL
No OpenMP (multi core support) is installed.
My hardware should be fine for multicore image processing:
- Model Name: Mac mini
Model Identifier: Macmini5,3
Processor Name: Intel Core i7
Processor Speed: 2 GHz
Number of Processors: 1
Total Number of Cores: 4
L2 Cache (per Core): 256 KB
L3 Cache: 6 MB
Memory: 16 GB
Solid state disk: 256 GB
For my analysis I think using multiple cores is essential. I would prefer using OSX as al my other software is on there. Is it possible to stay on OSX and use multiple cores within ImageMagick? Can I build and compile ImageMagic from scratch for OSX, and if so, how? Or do I need to use Linux and go from there?
I would like to know your experts opinion.
Thanks in advance.
Re: Is there ImageMagick multicore support (OpenMP) for OSX?
Posted: 2012-09-24T09:56:53-07:00
by fmw42
Can I build and compile ImageMagic from scratch for OSX, and if so, how? Or do I need to use Linux and go from there?
There may be a way to recompile from MacPorts enabling OpenMP, but I do not know enough about that. Search the archives. I think there was a response to a similar question, though it may have been going the other way.
I am on Mac OSX Snow Leopard. I installed all my delegates from MacPorts and then I install IM from source and link to the delegates in /opt from MacPorts. That way I can recompile whenever there is a new release.
Here is my ./configure command:
./configure
CPPFLAGS='-I/opt/local/include' LDFLAGS='-L/opt/local/lib' \
--enable-delegate-build --enable-shared --disable-static
--disable-opencl \
--with-modules --with-quantum-depth=16 --with-gslib --without-wmf \
--disable-silent-rules --disable-dependency-tracking
--disable-openmp --without-pango \
--with-gs-font-dir=/opt/local/share/ghostscript/fonts/ --with-lqr
The key is the commands in blue. See
http://www.imagemagick.org/download/www ... .html#unix
http://www.imagemagick.org/script/advan ... lation.php
Note that I have disabled OpenMP, OpenCL and Pango as I am testing some of my scripts and do not want any problems from those components. You should remove them and anything else that is not relevant and/or use the correct command to enable them, e.g. --enable ... or --with ...
Hope that helps
Re: Is there ImageMagick multicore support (OpenMP) for OSX?
Posted: 2012-09-26T10:23:47-07:00
by CousinCocaine
Hi,
I configure succesfully using your suggested command:
Code: Select all
./configure CPPFLAGS='-I/opt/local/include' LDFLAGS='-L/opt/local/lib' \
--enable-delegate-build --enable-shared --disable-static \
--with-modules --with-quantum-depth=16 --with-gslib --without-wmf \
--disable-silent-rules --disable-dependency-tracking \
--with-gs-font-dir=/opt/local/share/ghostscript/fonts/ --with-lqr
Make seems to run fine but ends with an error.
Code: Select all
...
CC coders/magick_libMagickCore_la-png.lo
CC coders/magick_libMagickCore_la-ept.lo
CC coders/magick_libMagickCore_la-tiff.lo
CC coders/magick_libMagickCore_la-x.lo
CC coders/magick_libMagickCore_la-xwd.lo
CC filters/magick_libMagickCore_la-analyze.lo
CCLD magick/libMagickCore.la
/usr/bin/nm: no name list
ld: warning: directory not found for option '-L/opt/local/lib'
ld: warning: cannot export hidden symbol _SyncImagePixelCache from magick/.libs/magick_libMagickCore_la-cache.o
ld: warning: cannot export hidden symbol _ResetQuantumState from magick/.libs/magick_libMagickCore_la-quantum.o
copying selected object files to avoid basename conflicts...
/usr/bin/ranlib: file: magick/.libs/libMagickCore.a(magick_libMagickCore_la-PreRvIcccm.o) has no symbols
ranlib: file: magick/.libs/libMagickCore.a(magick_libMagickCore_la-PreRvIcccm.o) has no symbols
CC wand/wand_libMagickWand_la-animate.lo
CC wand/wand_libMagickWand_la-compare.lo
CC wand/wand_libMagickWand_la-composite.lo
CC wand/wand_libMagickWand_la-conjure.lo
CC wand/wand_libMagickWand_la-convert.lo
CC wand/wand_libMagickWand_la-deprecate.lo
CC wand/wand_libMagickWand_la-display.lo
CC wand/wand_libMagickWand_la-drawing-wand.lo
CC wand/wand_libMagickWand_la-identify.lo
CC wand/wand_libMagickWand_la-import.lo
CC wand/wand_libMagickWand_la-magick-image.lo
CC wand/wand_libMagickWand_la-magick-property.lo
CC wand/wand_libMagickWand_la-magick-wand.lo
CC wand/wand_libMagickWand_la-mogrify.lo
CC wand/wand_libMagickWand_la-montage.lo
CC wand/wand_libMagickWand_la-pixel-iterator.lo
CC wand/wand_libMagickWand_la-pixel-wand.lo
CC wand/wand_libMagickWand_la-stream.lo
CC wand/wand_libMagickWand_la-wand.lo
CC wand/wand_libMagickWand_la-wand-view.lo
CCLD wand/libMagickWand.la
ld: warning: directory not found for option '-L/opt/local/lib'
sed: OSX/ImageMagick-6.7.9-8/magick/libMagickCore.la: No such file or directory
libtool: link: `OSX/ImageMagick-6.7.9-8/magick/libMagickCore.la' is not a valid libtool archive
make[1]: *** [wand/libMagickWand.la] Error 1
make: *** [all] Error 2
Google learns that more OSX Mountin Lion users run into this error.
Till now I am still stuck on one core.
Re: Is there ImageMagick multicore support (OpenMP) for OSX?
Posted: 2012-09-27T06:00:46-07:00
by CousinCocaine
Finally I have got it working, ImageMagick multicore support (OpenMP) on OSX Mountin Lion.
What I did:
Install MacPorts and it's dependencies, like the command-line tools for Xcode. After that I did a selfupdate for MacPorts
Then I installed some packages using MacPorts
Code: Select all
sudo port -v install freetype +bytecode
sudo port -v install librsvg
sudo port -v install +graphviz +gs +wmf +jbig +jpeg2 +lcms # results in an error?
sudo port install jpeg
After that I downloaded the ImageMagick source (
http://www.imagemagick.org/download/ImageMagick.tar.gz), and did a regular 'configure', 'make', 'make install'. No errors occured.
Code: Select all
./configure
make
sudo make install
To check if my install was succesful I did a version check.
Code: Select all
identify -version
Version: ImageMagick 6.7.9-8 2012-09-27 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP OpenCL
Both OpenMP and OpenCL are installed (as they supposed to be).
Kudo's for fmw42 for his suggestion of using MacPorts to install the dependencies.
Re: Is there ImageMagick multicore support (OpenMP) for OSX?
Posted: 2012-09-27T10:58:31-07:00
by fmw42
Glad to hear that you worked things out.