[Monetdb-developers] MonetDB on UltraSPARC T1

Wouter Alink (DT) wouter at holmes.nl
Fri Sep 8 15:13:18 CEST 2006


It took me some time, and others might be interested in it:

Below my experiences with (successfully) compiling MonetDB on an
UltraSPARC T1 running Solaris 10. Appearantly the UltraSPARC T1 with its
many slow cores, is not the ultimate system for MonetDB (which likes
fast CPU's the most), but someone has to try it...

I configured with "--enable-bits=64 --enable-oid32 --enable-shared
--disable-static". (using gcc)

By patching iso/math_c99.h according to
http://gcc.gnu.org/ml/gcc-patches/2005-05/msg02123.html as Fabian
suggested in MonetDB-bug: 1304078, the first hurdle was taken.

The warnings below could be worked around by deleting lines 512 t/m 516
from  src/gdk/gdk_utils.mx 

gcc -m64 -DHAVE_CONFIG_H -I.
-I/usr/users/wouter/scratch/MonetDB-4.12/src/gdk -I../..
-I/usr/users/wouter/scratch/MonetDB-4.12/src/gdk -I../common
-I/usr/users/wouter/scratch/MonetDB-4.12/src/gdk/../common -DLIBGDK -O2
-std=c99 -D__EXTENSIONS__ -Wall -W -fno-strict-aliasing -O2
-fomit-frame-pointer -finline-functions -DHWCOUNTERS -DHW_SunOS
-DHW_sun4v -Werror-implicit-function-declaration -Werror
-Wno-unused-function -Wno-unused-label -Wno-uninitialized -D_REENTRANT
-c gdk_utils.c  -fPIC -DPIC -o .libs/libbat_la-gdk_utils.o
/usr/users/wouter/scratch/MonetDB-4.12/src/gdk/gdk_utils.mx: In function
warning: comparison of unsigned expression < 0 is always false
warning: comparison of unsigned expression < 0 is always false
warning: comparison of unsigned expression < 0 is always false
gmake[5]: *** [libbat_la-gdk_utils.lo] Error 1
gmake[5]: Leaving directory
gmake[4]: *** [all] Error 2
gmake[4]: Leaving directory
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory
gmake: *** [all] Error 2

MonetDB then compiled successfully, without warnings. 

After setting: LD_LIBRARY_PATH=/usr/sfw/lib/64/:/lib/64/ and installing
GNU diffutils, make check reported:
 1 out of 313 could not be executed, 11 SIGNIFICANTLY different... 
Among which: two tests that fail due to 64bits vs 32oids in
src/gdk:casts (it seems that this test does not take into account the
possible difference between bit- and oid-size), 1 java example failed:
output was written to err instead of std, two due to timeouts, two
failed because of some additional linebrakes in tcp-output, nothing very
serious it seems. I have the mTests results available if anyone is
interested in those.

Pathfinder compiled without problems and make check reported: 15 (out of
1187) could not be executed, 5 SIGNIFICANTLY different).

Then the results of some simple queries (on a document with 1.4M
elements and 2.3M attributes):

-bash-3.00$ time echo "count(doc(\"patrick.xml\")//file)" | MapiClient

real    0m0.110s
user    0m0.021s
sys     0m0.034s
-bash-3.00$ time echo "count(doc(\"patrick.xml\")//file[@name])" |
MapiClient -lxq

real    0m8.255s
user    0m0.021s
sys     0m0.034s

The result of the last query is (in my eyes) dramatic (more than 4 times
as slow as a Xeon 2.8). 
The next step will be to compile with the native compiler, which I
haven't done yet, and neither do I know whether I will succeed.


More information about the developers-list mailing list