![]() |
MLucas on IBM Mainframe
Hello! It's possible compile on IBM Mainframe? Tried compile MLucas (mlucas-14.1.tar.gz and Mlucas_12.11.2014.tgz). But unfortunately have a some problem.
[CODE]Architecture: s390x CPU op-mode(s): 32-bit, 64-bit Byte Order: Big Endian CPU(s): 2 On-line CPU(s) list: 0,1 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s) per book: 1 Book(s): 2 Vendor ID: IBM/S390 BogoMIPS: 20325.00 Hypervisor: z/VM 6.3.0 Hypervisor vendor: IBM Virtualization type: full Dispatching mode: horizontal L1d cache: 128K L1i cache: 96K L2d cache: 2048K L2i cache: 2048K [/CODE] By the way. Everyone can try. Just register and get access for 90 days. [url]https://developer.ibm.com/linuxone/?source=web&ca=linuxone&ovcode=ov44223&tactic=C47300NW[/url] I choose Linux Red Hat. |
[QUOTE=Lorenzo;425319]By the way. Everyone can try. Just register and get access for 90 days. [url]https://developer.ibm.com/linuxone/?source=web&ca=linuxone&ovcode=ov44223&tactic=C47300NW[/url][/QUOTE]
I will let others speak to building MLucas in this environment, but thank you for pointing this out to us. Interesting.... |
[QUOTE=chalsall;425323]Interesting....[/QUOTE]
Or, perhaps not so much... DNS is broken within the virtual machine as initially instanced (at least for RedHat Linux), and Mlucas doesn't even start to compile successfully, even though "../configure" completes successfully. Ernst? I know this is an experiment by IBM, but it's not going to compete with EC2 nor Google Compute et al any time soon. |
What's the error? Two people saying "it doesn't work" is about as useful as me saying that Prime95 won't compile either.
|
[QUOTE=Dubslow;425334]What's the error? Two people saying "it doesn't work" is about as useful as me saying that Prime95 won't compile either.[/QUOTE]
Fair enough... [CODE][linux1@i4l-2 build]$ cat /proc/cpuinfo vendor_id : IBM/S390 # processors : 2 bogomips per cpu: 20325.00 features : esan3 zarch stfle msa ldisp eimm dfp etf3eh highgprs processor 0: version = FF, identification = 016A77, machine = 2964 processor 1: version = FF, identification = 016A77, machine = 2964 [linux1@i4l-2 build]$ uname -a Linux i4l-2 2.6.32-573.12.1.el6.s390x #1 SMP Mon Nov 23 12:58:30 EST 2015 s390x s390x s390x GNU/Linux [linux1@i4l-2 build]$ pwd /home/linux1/mlucas/mlucas-14.1/build [linux1@i4l-2 build]$ ../configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... none checking for library containing ceil, log, pow, sqrt, sincos, floor, lrint, atan... -lm checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking fenv.h usability... yes checking fenv.h presence... yes checking for fenv.h... yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking mach/mach.h usability... no checking mach/mach.h presence... no checking for mach/mach.h... no checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for unistd.h... (cached) yes checking for stdbool.h that conforms to C99... yes checking for _Bool... yes checking for inline... inline checking for pid_t... yes checking for size_t... yes checking for uint64_t... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible realloc... yes checking for clock_gettime... no checking for gethrtime... no checking for gettimeofday... yes checking for memset... yes checking for pow... yes checking for sqrt... yes checking for strerror... yes checking for strstr... yes checking for strtoul... yes checking whether _LARGEFILE_SOURCE is declared... no checking build system type... s390x-ibm-linux-gnu checking host system type... s390x-ibm-linux-gnu checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands [linux1@i4l-2 build]$ make make all-am make[1]: Entering directory `/home/linux1/mlucas/mlucas-14.1/build' CC $NORMAL_O $THREADS_O make[1]: *** [NORMAL_O-THREADS_O.stamp] Error 1 make[1]: Leaving directory `/home/linux1/mlucas/mlucas-14.1/build' make: *** [all] Error 2[/CODE] |
[QUOTE=chalsall;425331]
I know this is an experiment by IBM, but it's not going to compete with EC2 nor Google Compute et al any time soon.[/QUOTE] Would you mind to elaborate? Luigi |
[QUOTE=chalsall;425336]Fair enough... [CODE]
[linux1@i4l-2 build]$ make make all-am make[1]: Entering directory `/home/linux1/mlucas/mlucas-14.1/build' CC $NORMAL_O $THREADS_O make[1]: *** [NORMAL_O-THREADS_O.stamp] Error 1 make[1]: Leaving directory `/home/linux1/mlucas/mlucas-14.1/build' make: *** [all] Error 2[/CODE][/QUOTE] What a perfectly useless error message. I see now why you didn't immediately include it. |
[QUOTE=ET_;425337]Would you mind to elaborate?[/QUOTE]
Sure... As much as I hate to say it, Intel has mostly won the assembly race. As in, most code is targeted to x86 (and this is coming from someone who hates x86; I much prefer 680x0 assembly (may it rest in peace)). Even source code in C, C++ etc might not work under a different platform. This might be because of the build environment not being truly cross-platform, or because there are subtle bugs in the code which don't manifest under the most commonly used CPUs. Yes, this does mean the code is buggy, but most don't care -- they just want the code to work for them without hassle. At the end of the day, my argument is that cloud computing providers need to provide x86 based virtual machines to (almost all of) their customers, or they're just not going to get traction. |
[QUOTE=chalsall;425339]...
At the end of the day, my argument is that cloud computing providers need to provide x86 based virtual machines to (almost all of) their customers, or they're just not going to get traction.[/QUOTE] I am working with servers in cloud, and notice that even on x86 architectures, one "virtual CPU" equals 40%-50% of a real one. If the IBM fellows deliver a virtual CPU worth 60%-65% of a real CPU, they would win the race. That "virtual CPu" thingie is going to take the place of the "minimum guaranteed upload bandwidth" for ADSL... |
[QUOTE=ET_;425340]I am working with servers in cloud, and notice that even on x86 architectures, one "virtual CPU" equals 40%-50% of a real one. If the IBM fellows deliver a virtual CPU worth 60%-65% of a real CPU, they would win the race.[/QUOTE]
I also mostly work in "the cloud". For my serious work I lease dedicated servers, where I get 100% of the machine. For my "on demand" work I sometimes go "virtual". And, if you know what you're doing, you can get ~99% of a machine for pennies on the dollar. IBM is not going to win this race unless and until they offer x86 instances. And, so you know, I ran a simple benchmark from the command line, and their instance was half the speed of my desktop (one CPU used on each). |
[QUOTE=chalsall;425336]Fair enough... [CODE][linux1@i4l-2 build]$ cat /proc/cpuinfo
vendor_id : IBM/S390 # processors : 2 bogomips per cpu: 20325.00 features : esan3 zarch stfle msa ldisp eimm dfp etf3eh highgprs processor 0: version = FF, identification = 016A77, machine = 2964 processor 1: version = FF, identification = 016A77, machine = 2964 [linux1@i4l-2 build]$ uname -a Linux i4l-2 2.6.32-573.12.1.el6.s390x #1 SMP Mon Nov 23 12:58:30 EST 2015 s390x s390x s390x GNU/Linux [linux1@i4l-2 build]$ pwd /home/linux1/mlucas/mlucas-14.1/build [linux1@i4l-2 build]$ ../configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... none checking for library containing ceil, log, pow, sqrt, sincos, floor, lrint, atan... -lm checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking fenv.h usability... yes checking fenv.h presence... yes checking for fenv.h... yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking mach/mach.h usability... no checking mach/mach.h presence... no checking for mach/mach.h... no checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for unistd.h... (cached) yes checking for stdbool.h that conforms to C99... yes checking for _Bool... yes checking for inline... inline checking for pid_t... yes checking for size_t... yes checking for uint64_t... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible realloc... yes checking for clock_gettime... no checking for gethrtime... no checking for gettimeofday... yes checking for memset... yes checking for pow... yes checking for sqrt... yes checking for strerror... yes checking for strstr... yes checking for strtoul... yes checking whether _LARGEFILE_SOURCE is declared... no checking build system type... s390x-ibm-linux-gnu checking host system type... s390x-ibm-linux-gnu checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands [linux1@i4l-2 build]$ make make all-am make[1]: Entering directory `/home/linux1/mlucas/mlucas-14.1/build' CC $NORMAL_O $THREADS_O make[1]: *** [NORMAL_O-THREADS_O.stamp] Error 1 make[1]: Leaving directory `/home/linux1/mlucas/mlucas-14.1/build' make: *** [all] Error 2[/CODE][/QUOTE] Hi people, could you try appending --enable-verbose-compiler and --disable-silent-rule when running configure and paste the output? (I don't want to give away my phone number to register...) Currently, Mlucas only compiles and passes the self-test on 4 targets when [URL="https://buildd.debian.org/status/package.php?p=mlucas"]building[/URL] it on [URL="https://packages.debian.org/sid/math/mlucas"]Debian[/URL]. It would be great if it compiles targets other than x86 and powerpc as well. Besides, do you think compiler warnings and verbose rule should be enabled by default? I used to think it is too verbose but it seems the short error message is pretty useless. |
| All times are UTC. The time now is 04:24. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.