Questions and Answers :
Unix/Linux :
*** Running 32bit CPDN from 64bit Linux - Discussion ***
Message board moderation
Previous · 1 . . . 10 · 11 · 12 · 13 · 14 · 15 · 16 . . . 19 · Next
Author | Message |
---|---|
Send message Joined: 12 Apr 21 Posts: 314 Credit: 14,560,701 RAC: 18,057 |
Upgrade worked fine but couldn't find libs32stdc++-8-dev to install. Last 2 tasks completed OK. Now shutdown to conserve power (big bills) and waiting for new work. Check the spelling, it's lib32... not libs32... . It does however look like the ...-8-dev is not available for versions past Ubuntu 21.10. Try one of the following: ...-9-dev, -10, -11, or -12. ...-12-dev seems to be the latest version. |
Send message Joined: 12 Apr 21 Posts: 314 Credit: 14,560,701 RAC: 18,057 |
Moderators, Please update the 32-bit libraries post that starting with Ubuntu 21.10 the following command should be used to install the required libraries: sudo apt-get install lib32ncurses6 lib32z1 lib32stdc++-9-dev For the lib32stdc++ library ...-9-dev through ...-11-dev should work for 21.10. For 22.04 ...-9-dev through ...-12-dev should work.. |
Send message Joined: 15 May 09 Posts: 4530 Credit: 18,669,877 RAC: 14,865 |
Moderators, Thank you. Now updated. |
Send message Joined: 12 Apr 21 Posts: 314 Credit: 14,560,701 RAC: 18,057 |
I made a small mistake in an above post, lib32stdc++-8-dev is available for Ubuntu 21.10, it's the earliest version available. I implied that ...-9-dev is the earliest available. |
Send message Joined: 22 Feb 06 Posts: 490 Credit: 30,771,914 RAC: 10,979 |
Oops! Looking back I think I had actually used lib32 in my original attempt to update the libs. Libs32 in my post is a typo! Next time I boot that machine I will try the other variants, but the tasks seemed to work OK anyway without that update. |
Send message Joined: 5 Aug 04 Posts: 1120 Credit: 17,194,632 RAC: 2,780 |
In Red Hat Enterprise Linux 8, it is in $ rpm -qf /lib/libstdc++.so.6.0.25 libstdc++-8.5.0-10.1.el8_6.i686 |
Send message Joined: 12 Apr 21 Posts: 314 Credit: 14,560,701 RAC: 18,057 |
Alan, Like Dave said in an earlier post, if you just did an upgrade (not a clean install) then the libraries should still be there. I believe an upgrade only deletes obsolete & unsupported libraries but keeps and updates the supported ones. Since you said your tasks completed without problems after the upgrade, you probably already had a -9-dev or later (plus the other 2 libraries). To see what you have installed run the command: apt list --installed I just upgraded my WSL2 Ubuntu to 22.04 and installed the -12-dev as the one I had turned out to be much older and unsupported by 22.04. No tasks to test it out yet but I expect it to work ok. |
Send message Joined: 12 Apr 21 Posts: 314 Credit: 14,560,701 RAC: 18,057 |
Does anyone know what the library lib32ncurses6 does and why it's listed as required for CPDN for Ubuntu? |
Send message Joined: 7 Aug 04 Posts: 2183 Credit: 64,822,615 RAC: 5,275 |
Does anyone know what the library lib32ncurses6 does and why it's listed as required for CPDN for Ubuntu? I'm not sure that it is needed anymore. The commands were originally taken from boinc guidance of potentially needed libraries for 32bit apps in Ubuntu. It was originally taken from this section of boinc 32bit app considerations. https://boinc.berkeley.edu/wiki/Installing_BOINC#Ubuntu_2 |
Send message Joined: 12 Apr 21 Posts: 314 Credit: 14,560,701 RAC: 18,057 |
That's what I'm wondering, if it's even needed. Looking it up, it seems to be used for displaying on terminals, if I understand it correctly. Too bad there are no tasks available to test things. |
Send message Joined: 15 May 09 Posts: 4530 Credit: 18,669,877 RAC: 14,865 |
running ldd hadam4_8.52_i686-pc-linux-gnu linux-gate.so.1 (0xf7f8a000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7f52000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7f4d000) libstdc++.so.6 => /lib/i386-linux-gnu/libstdc++.so.6 (0xf7d18000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7c10000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7be9000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf79b4000) /lib/ld-linux.so.2 (0xf7f8c000)Doesn't show it as being a dependency for the hadam4 tasks. Also not on the list for hadsm4 or the hadcm3s executeables, the last of which is not particularly relevant unless they bring back hadcm3s tasks for Linux. Under a standard Ubuntu distribution these files can be found in /var/lib/boinc-client/projects/climateprediction.net If on a fresh install after adding the project, Running ldd on these files tells you if anything needed is not installed. |
Send message Joined: 7 Aug 04 Posts: 2183 Credit: 64,822,615 RAC: 5,275 |
These are all the dependencies for all the important 8.52 executables: hadam4_8.52_i686-pc-linux-gnu: linux-gate.so.1 (0xf7f5d000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7f18000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7f12000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7d33000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7c2e000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7c0f000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7a20000) /lib/ld-linux.so.2 (0xf7f5f000) hadam4_se_8.52_i686-pc-linux-gnu.so: linux-gate.so.1 (0xf7f20000) libnsl.so.1 => /lib/i386-linux-gnu/libnsl.so.1 (0xf7dc4000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7be5000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7ae0000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7ac1000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf78d2000) /lib/ld-linux.so.2 (0xf7f22000) hadam4_um_8.52_i686-pc-linux-gnu: linux-gate.so.1 (0xf7f84000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7f5c000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7e57000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7e34000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7c45000) /lib/ld-linux.so.2 (0xf7f86000) You can see libnsl is needed in the "se" file used for some kind of communication "Functions in this library provide routines that provide a transport-level interface to networking services for applications, facilities for machine-independent data representation, a remote procedure call mechanism, and other networking services useful for application programs." |
Send message Joined: 12 Apr 21 Posts: 314 Credit: 14,560,701 RAC: 18,057 |
Yes, but what makes me not trust that completely is that lib32z1 is not listed anywhere but without it the upload files won't zip and the task will error out despite completing the calculations. |
Send message Joined: 5 Aug 04 Posts: 1120 Credit: 17,194,632 RAC: 2,780 |
what makes me not trust that completely is that lib32z1 is not listed anywhere but without it the upload files won't zip and the task will error out despite completing the calculations. On my Red Hat Enterprise Linux release 8.6 (Ootpa) system there is one (but only this one) that requires it, but it has a slightly different name. [/var/lib/boinc/projects/climateprediction.net]$ ldd hadcm3s_se_8.36_i686-pc-linux-gnu.so linux-gate.so.1 (0xf7f14000) libz.so.1 => /lib/libz.so.1 (0xf7e5b000) <---<<< libnsl.so.1 => /lib/libnsl.so.1 (0xf7e3f000) libstdc++.so.6 => /lib/libstdc++.so.6 (0xf7cac000) libm.so.6 => /lib/libm.so.6 (0xf7bda000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf7bbd000) libc.so.6 => /lib/libc.so.6 (0xf7a15000) /lib/ld-linux.so.2 (0xf7f16000) |
Send message Joined: 7 Aug 04 Posts: 2183 Credit: 64,822,615 RAC: 5,275 |
Yes, but what makes me not trust that completely is that lib32z1 is not listed anywhere but without it the upload files won't zip and the task will error out despite completing the calculations. The libz is only needed for the hadcm3s tasks. Since, at this time, that is Mac only, it isn't needed for any hadam4x tasks, but is left in the command line in case they release the hadcm3s for Linux again. |
Send message Joined: 29 Oct 17 Posts: 1044 Credit: 16,196,312 RAC: 12,647 |
Note that having the correct 32bit libraries doesn't necessarily mean the model will run. On my WSL2 Ubuntu 22, hadsm4 crashes every time despite ldd showing all dynamic references are resolved. I started having a look at what was going on (probably my own fault for hacking WSL around a bit). I copied a slot directory so I could run it offline in the debugger and it appears the model fails when the shared memory interchange part of the code is reached (which would make sense). Another thing to be aware of is that the error code reported by the task may not actually indicate the fault. The task error code was 12 if I remember right, but in the debugger I got exit code 14 (EFAULT - bad address), which would be correct. So either a bug in the code or the loader order of the libraries is going wrong and I'm getting a 64 bit library and not the 32bit one. I ought to have another look. Anyway, I've offered the CPDN team, if I have time, I'll look at building the model in 64bit. Hard to know how much work this will be but I have the build instructions & git repos to look at. If anyone else has looked at this, do let me know. Cheers. |
Send message Joined: 12 Apr 21 Posts: 314 Credit: 14,560,701 RAC: 18,057 |
I remember reading that the project wanted to transition to having each application be run on a single OS, so I highly doubt that HadCM3s tasks will be available for LInux again. Therefore, it seems then that for at least Ubuntu 18.04 and on, only 1 package is needed to install the required libraries. It also seems that that package should be lib32stdc++6, not the lib32stdc++-X-dev. The development package is about 4 times the size installed of the regular one and provides a lot of unnecessary for CPDN libraries that are needed for development, and changes names (the X part) which one has to keep track of when upgrading. The regular package keeps the same name and only provides what's needed to run the apps. I suspect the same is true for other distributions. What makes me a little uncertain about the zlib package is that I recently saw a post that a user ran some tasks for like 40 days and they errored out because the files couldn't be zipped. The suggestion was to make sure that the lib32z1 was installed. Unfortunately I don't remember any more details and couldn't find that post again. It'd be nice to get some tasks to confirm all of this. The 32-bit libraries post could then be significantly simplified. I also wonder if Hadley models will still be used once OpenIFS comes out. |
Send message Joined: 12 Apr 21 Posts: 314 Credit: 14,560,701 RAC: 18,057 |
Glenn, I've used WSL2 for CPDN and other projects for a while now and haven't had any issues (except for 2 issues with some complicated LHC applications, 1 of which I was able to resolve, the other one I can work around). I've used Ubuntu 20.04 but haven't done any hacking. It looks like you also used 20.04 not 22.04. I believe there are at least a few other WSL2 users here too. Maybe it is your hacking. :-) |
Send message Joined: 7 Aug 04 Posts: 2183 Credit: 64,822,615 RAC: 5,275 |
What makes me a little uncertain about the zlib package is that I recently saw a post that a user ran some tasks for like 40 days and they errored out because the files couldn't be zipped. The suggestion was to make sure that the lib32z1 was installed. Unfortunately I don't remember any more details and couldn't find that post again. This may have been the people running Fedora 3x which didn't have libnsl installed. The files do not upload for unknown reasons without libnsl. Is it zipping, renaming, or some type of inter-application communication breakdown? I don't know and I"m not going to install Fedora 3x again to find out if the files exist but are not zipped, otherwise named wrong, or something else. |
Send message Joined: 29 Oct 17 Posts: 1044 Credit: 16,196,312 RAC: 12,647 |
@AndreyOR. Yes, I've got 20.04, just a typo. Yes, I do need to look at what libraries and the loader are doing on my WSL instance but it'll be a learning experience :) Re: Hadley models .v. OpenIFS. Yes, the Hadley models will still be used because (a) they are regional models whereas OpenIFS is global, meaning they can get to higher local resolution, (b) different scientists use different models and it's attractive for CPDN to offer a range. I'm not sure where you read about a single OS? From conversations I've had the thinking is to produce a linux version for all the models and then use a VM for the other OSes. I'm currently working on a VM OpenIFS which will also require server changes. Re: libstdc++. I've looked at this, we can make this library go away by statically linking it at compile time. I'll also look at what other libraries (libz for example) can be statically linked against the binaries to reduce dependences as far as possible. This is the first problem I'll deal with once I've created the VM to build the Hadley models. After that I'll look at a 64bit build but that will take longer as it will almost certainly involve code changes, and a number of tests to validate the results against the 32bit versions. There are too many failures currently for the Had* models (over 50%), which I think looks bad for CPDN and risks putting people off. Hopefully soon there will be no need for this thread. |
©2024 cpdn.org