[pdal] PDAL decrease performance after hardware change
Oscar Martinez Rubi
o.martinezrubi at tudelft.nl
Tue May 6 06:53:18 PDT 2014
Hi guys,
I have two problems that are driving me quite crazy. The first one is
related to compilation of PDAL:
I can not manage to compile the current version in the repository. It
crashes during compilation. The error I get is (I used embed_boost):
[ 48%] Building CXX object src/CMakeFiles/pdalcpp.dir/StageFactory.cpp.o
In file included from
/home/oscar/sw/PDAL/src/../include/pdal/drivers/bpf/BpfReader.hpp:37,
from /home/oscar/sw/PDAL/src/../include/pdal/Drivers.hpp:46,
from /home/oscar/sw/PDAL/src/StageFactory.cpp:43:
/home/oscar/sw/PDAL/src/../include/pdal/IStream.hpp: In member function
‘std::istream* pdal::IStream::popStream()’:
/home/oscar/sw/PDAL/src/../include/pdal/IStream.hpp:78: error: ‘nullptr’
was not declared in this scope
/home/oscar/sw/PDAL/src/../include/pdal/IStream.hpp: In member function
‘pdal::ILeStream& pdal::ILeStream::operator>>(float&)’:
/home/oscar/sw/PDAL/src/../include/pdal/IStream.hpp:173: warning:
dereferencing type-punned pointer will break strict-aliasing rules
/home/oscar/sw/PDAL/src/../include/pdal/IStream.hpp: In member function
‘pdal::ILeStream& pdal::ILeStream::operator>>(double&)’:
/home/oscar/sw/PDAL/src/../include/pdal/IStream.hpp:181: warning:
dereferencing type-punned pointer will break strict-aliasing rules
In file included from
/home/oscar/sw/PDAL/boost/boost/interprocess/detail/managed_open_or_create_impl.hpp:15,
from
/home/oscar/sw/PDAL/boost/boost/interprocess/managed_shared_memory.hpp:22,
from /home/oscar/sw/PDAL/src/../include/pdal/PointBuffer.hpp:44,
from /home/oscar/sw/PDAL/src/../include/pdal/drivers/sbet/Reader.hpp:38,
from /home/oscar/sw/PDAL/src/../include/pdal/Drivers.hpp:48,
from /home/oscar/sw/PDAL/src/StageFactory.cpp:43:
/home/oscar/sw/PDAL/boost/boost/interprocess/detail/os_thread_functions.hpp:
In function ‘int
pdalboost::interprocess::ipcdetail::thread_launch(pdalboost::interprocess::ipcdetail::OS_thread_t&,
F)’:
/home/oscar/sw/PDAL/boost/boost/interprocess/detail/os_thread_functions.hpp:554:
warning: ‘auto_ptr’ is deprecated (declared at
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/backward/auto_ptr.h:86)
make[2]: *** [src/CMakeFiles/pdalcpp.dir/StageFactory.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/pdalcpp.dir/all] Error 2
make: *** [all] Error 2
I also tried without embed boost but also crashed.
It compiles fine if I use the tag 0.9.8 though. I do not know if anybody
else is having this issue or whether you are already aware of this (if
that is the case I am sorry!)
I also tried the PDAL in https://github.com/pramsey/PDAL/ since I want
to use PDAL for pointcloud in postgres (actually what is the difference
between the two repositories?). In this one I manage to compile the
latest but I always get the error Caught PDAL exception:
drivers.pgpointcloud.writer num_points > m_patch_capacity! when loading
files.
If I use a previous version of the code in the pramsey repository, for
example revision 50ed6d4 (git reset --hard 50ed6d4) then it works fine.
Any help?
The second problem I have is a decrease of PDAL performance after a
hardware/software change on my main testing server.
This RedHat 6.5 server had originally a RAID 6 with 80TB. We have this
test to load 20M points in postgres pointcloud from a LAZ file. It took
80 seconds. Another test is to load them in a flat table (using las2txt
piped with psql -c 'copy from') which takes 600 seconds (PDAL rocks!).
Then, we changed the hardware. Now we have two RAID systems of 40TB
each. The idea was to use one for reading the LAZ files and the other to
write to the DB. We also upgraded Postgres and Postgis and PDAL with
latest versions (well PDAL I had to use a previous revision). After the
upgrade the time of the PDAL loading was 130 seconds (instead of 80)!
But the time of the flat table loading is still the same (600 secs). So,
something have changed that affects only PDAL.
I am also testing using Oracle (not with PDAL) and MonetDB to load point
clouds and these other systems are not affected by hardware change
(actually they improve)
I have some virtual machines (centos 6.4) in another server. I tried
different combinations of Postgres, PostGIS, PDAL, GDAL to see if I saw
some combination that was worse than the rest but they are more or less
the same (which is expected). So, essentially I could not reproduce the
same performance decrease in a different system which is very annoying.
Anyway, I tried to install back in the main testing server the same
Postgres, PostGIS, PDAL software that I originally had with no luck. The
time is still around 130 seconds (for something that should take 80
seconds).
Any idea why could this happen? Excuses because I know that something
that is nor reproducible is very tricky to correct but I am quite
desperate here! Any idea/hint would be very appreciated.
Thanks a lot in advance and sorry for long mail!
Regards,
Oscar
More information about the pdal
mailing list