[Paraview] Paraview will not build
Tim Gallagher
tim.gallagher at gatech.edu
Wed Oct 26 12:44:30 EDT 2011
I don't really have a horse in the race here, but I've fought a lot with CMake and the old school Makefile/configure setup and CMake is infinitely better. To address your rant:
0. We've used it on every HPC system the DOD, DOE and NASA have to offer with no problems. Cray, IBM, SGI, our own in-house Linux clusters, no issues.
1. ccmake is no more magic than ./configure
2. I suppose it could start configuring itself, never really thought about it. But it's nice that it doesn't sometimes when I accidentally go into cmake in a folder I didn't mean to.
3. Ever build a linux kernel? Paraview has nothing on that list of options. If you know what options you want turned on ahead of time, you can put -DOPTION=VALUE on the cmake command line, just as you would with ./configure --enable-OPTION
4. You know you're done configuring when new options that are *'d stop showing up at the top of the list. The "you're ready" message is when the g for generate pops up.
5, 6. CMake is open source -- if there are basic sanity checks that are so trivial, contribute them and people will be glad to have them.
7. You don't have to go back into ccmake to turn on verbose building. Just do make VERBOSE=1 and it will be plenty verbose. And it will pick up right where it left off.
I'll admit there is a learning curve to using and writing CMake systems. But it's infintely less tedious for developers compared to autotools or writing your own Makefiles. It's also much nicer for users when there are tons of options than trying to specify them all on a command line to a configure script (and easier for us developers when users ask for a GUI to set options -- it's one less thing to write and debug).
Maybe some of the above will make things easier for you, or maybe it won't, but that's what we've learned through this process.
Tim
----- Original Message -----
From: "Rich Cook" <cook47 at llnl.gov>
To: "John A. Biddiscombe" <biddisco at cscs.ch>
Cc: paraview at paraview.org
Sent: Wednesday, October 26, 2011 12:24:46 PM
Subject: Re: [Paraview] Paraview will not build
These are all good suggestions. Thanks so much for the help everybody!
Our mvapich MPI could easily be 1x instead of 2x.
However, the good news is that by switching to OpenMPI and diddling with the CMakeCache.txt, I was able to get it to build including the MILI reader.
As for not hacking the CMakeCache.txt, I much prefer that to endlessly iterating through the obnoxious ccmake GUI. Please forgive me, but I must vent:
<rant> CMake has to be one of the worst user experiences ever devised and brings very little to the table that I can see. It's not even cross platform as its intended, AFAICT. Here's my experience with it:
1) type a magic command line
2) hit "configure". Why doesn't cmake initialize itself? Because.
3) Scan through the list of options, tediously enabling and disabling.
4) hit "configure" again to see more options. If you're done configuring, go to 5, else go to 3. How do you know when you're done? Experience. No hint from the GUI. No sanity checks. No "you're ready" message. No summary. No help at all! Basically, ask a human.
5) Hit "generate."
6) Kick off a build and wait for an error to show up that a decent sanity check would have caught.
7) Attempt to debug the error without any compile lines being shown. Go back to the ccmake GUI and turn on VERBOSE build. Since you changed something, every .o file is rebuilt from scratch. Wait forever for the same error. Go to #1
This process takes literally hours. I have done it so many times I can do it in my sleep, but I still hate it. Job security, I guess. :-)
</rant>
I will pore through them and probably grab some help from Alan Scott if my latest efforts fail.
On Oct 25, 2011, at 11:33 PM, Biddiscombe, John A. wrote:
> Richard
>
> In an emergency, you can simply paste
>
> #define MPI_IN_PLACE ((void *) 1)
>
> into files where you're getting a build error to shut the compiler up and produce a test build to work with.
>
> If you're not actually using the functions, you won't get any run time errors. (of course, if you are using parallel compositing - in this case, you might indeed get problems).
>
> JB
>
> -----Original Message-----
> From: paraview-bounces at paraview.org [mailto:paraview-bounces at paraview.org] On Behalf Of Takuya OSHIMA
> Sent: 26 October 2011 07:26
> To: david.partyka at kitware.com; cook47 at llnl.gov
> Cc: paraview at paraview.org
> Subject: Re: [Paraview] Paraview will not build
>
> The problem I think is that MPI_IN_PLACE is supported only by MPI-2
> whereas your MPI library probably implements MPI 1.x.
>
> MPI_IN_PLACE was not in IceT until PV 3.10.1. I had given up trying to
> install PV 3.12 series on a supercluster that only has MPI 1.2 support
> so would really appreciate if the MPI-2 dependence is removed by any
> chance...
>
> Takuya
>
> Takuya OSHIMA, Ph.D.
> Faculty of Engineering, Niigata University
> 8050 Ikarashi-Ninocho, Nishi-ku, Niigata, 950-2181, JAPAN
>
> From: David Partyka <david.partyka at kitware.com>
> Subject: Re: [Paraview] Paraview will not build
> Date: Tue, 25 Oct 2011 21:44:13 -0400
>
>> You shouldn't be tweaking the Cache! :-P It should work with openmpi,
>> mpich2, msmpi intel mpi etc.
>>
>> On Tue, Oct 25, 2011 at 9:04 PM, Cook, Rich <cook47 at llnl.gov> wrote:
>>
>>> Ah, thanks,
>>> perhaps this only works with OpenMPI... I'll investigate whether I can use
>>> that.
>>> Paraview is hard as hell to build.
>>> -- Rich
>>>
>>> On Oct 25, 2011, at 5:59 PM, Scott, W Alan wrote:
>>>
>>>> Works for me! Here is a snippet from our python script.
>>>>
>>>> Alan
>>>>
>>>> mpiDir =
>>> '/apps/x86_64/mpi/openmpi/intel-11.1-f064-c064/openmpi-1.4.2_oobpr
>>>>
>>>> cMakeVars = cMakeVars +\
>>>> '-DMPI_LIBRARY:FILEPATH="'+mpiDir+'/lib/libmpi.so;'+\
>>>> mpiDir+'/lib/libopen-rte.so;'+\
>>>> mpiDir+'/lib/libopen-pal.so;'+\
>>>> mpiDir+'/lib/libmpi_cxx.so" '+\
>>>> '-DCMAKE_EXE_LINKER_FLAGS:STRING=-Bdynamic '
>>>>
>>>> cMakeVars = cMakeVars +\
>>>> '-DVTK_USE_MPI:BOOL=ON '+\
>>>> '-DPARAVIEW_USE_MPI:BOOL=ON '+\
>>>> '-DMPI_INCLUDE_PATH:PATH='+mpiDir+'/include/ '+\
>>>> '-DCMAKE_C_FLAGS:STRING="-w -fPIC -I'+mpiDir+'/include/openmpi"
>>> '+\
>>>> '-DCMAKE_CXX_FLAGS:STRING="-w -fPIC -I'+mpiDir+'/include/openmpi"
>>> '+\
>>>> '-DCMAKE_CXX_FLAGS_RELEASE:STRING="-O2 -fPIC" '+\
>>>> '-DCMAKE_C_FLAGS_RELEASE:STRING="-O2 -fPIC" '+\
>>>> '-DPARAVIEW_PLUS_BUILD:BOOL=OFF '
>>>>
>>>> cMakeVars = cMakeVars +\
>>>> '-DPARAVIEW_USE_MPI_SSEND:BOOL=ON '
>>>>
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: paraview-bounces at paraview.org [mailto:
>>> paraview-bounces at paraview.org] On Behalf Of Cook, Rich
>>>> Sent: Tuesday, October 25, 2011 6:44 PM
>>>> To: paraview at paraview.org
>>>> Subject: [Paraview] Paraview will not build
>>>>
>>>> Help?
>>>>
>>>> [ 44%] Building C object
>>> Utilities/IceT/src/communication/CMakeFiles/IceTMPI.dir/mpi.c.o
>>>> cd
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2-build/Utilities/IceT/src/communication
>>> && /usr/local/bin/mpicc -DIceTMPI_EXPORTS -DVTK_PYTHON_BUILD
>>> -I/usr/global/tools/Kitware/Paraview/3.11/chaos_4_x86_64_ib/include
>>> -I/usr/gapps/visit/mili/1.10.0/linux-x86_64_gcc-4.1/include
>>> -I/usr/gapps/visit/hdf5/1.8.4/linux-x86_64_gcc-4.1/include -g -fPIC
>>> -I/nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2-build
>>> -I/nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2-build/VTK/Utilities
>>> -I/usr/local/include/python2.6 -I/usr/local/tools/mvapich-gnu/include
>>> -I/nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/include
>>> -I/nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2-build/Utilities/IceT/src/include
>>> -ansi -Wall -Wno-long-long -Wcast-align -Wextra -Wformat-security -Wshadow
>>> -Wunused -Wreturn-type -Wpointer-arith -Wdeclaration-after-statement -o
>>> CMakeFiles/IceTMPI.dir/mpi.c.o -c
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c
>>>>
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:
>>> In function 'Gather':
>>>>
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:327:
>>> error: 'MPI_IN_PLACE' undeclared (first use in this function)
>>>>
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:327:
>>> error: (Each undeclared identifier is reported only once
>>>>
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:327:
>>> error: for each function it appears in.)
>>>>
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:
>>> In function 'Gatherv':
>>>>
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:348:
>>> error: 'MPI_IN_PLACE' undeclared (first use in this function)
>>>>
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:
>>> In function 'Allgather':
>>>>
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:366:
>>> error: 'MPI_IN_PLACE' undeclared (first use in this function)
>>>> make[2]: ***
>>> [Utilities/IceT/src/communication/CMakeFiles/IceTMPI.dir/mpi.c.o] Error 1
>>>> make[2]: Leaving directory
>>> `/nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2-build'
>>>> make[1]: ***
>>> [Utilities/IceT/src/communication/CMakeFiles/IceTMPI.dir/all] Error 2
>>>> make[1]: Leaving directory
>>> `/nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2-build'
>>>> make: *** [all] Error 2
>>>>
>>>> --
>>>> ✐Richard Cook
>>>> ✇ Lawrence Livermore National Laboratory
>>>> Bldg-453 Rm-4024, Mail Stop L-557
>>>> 7000 East Avenue, Livermore, CA, 94550, USA
>>>> ☎ (office) (925) 423-9605
>>>> ☎ (fax) (925) 423-6961
>>>> ---
>>>> Information Management & Graphics Grp., Services & Development Div.,
>>> Integrated Computing & Communications Dept.
>>>> (opinions expressed herein are mine and not those of LLNL)
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Powered by www.kitware.com
>>>>
>>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Please keep messages on-topic and check the ParaView Wiki at:
>>> http://paraview.org/Wiki/ParaView
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.paraview.org/mailman/listinfo/paraview
>>>
>>> --
>>> ✐Richard Cook
>>> ✇ Lawrence Livermore National Laboratory
>>> Bldg-453 Rm-4024, Mail Stop L-557
>>> 7000 East Avenue, Livermore, CA, 94550, USA
>>> ☎ (office) (925) 423-9605
>>> ☎ (fax) (925) 423-6961
>>> ---
>>> Information Management & Graphics Grp., Services & Development Div.,
>>> Integrated Computing & Communications Dept.
>>> (opinions expressed herein are mine and not those of LLNL)
>>>
>>>
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the ParaView Wiki at:
>>> http://paraview.org/Wiki/ParaView
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.paraview.org/mailman/listinfo/paraview
>>>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview
Rich Cook
---------------------------------------------
Be impeccable with your word, don't take anything personally, don't make assumptions, and always do your best.
-- The Four Agreements
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview
More information about the ParaView
mailing list