climateprediction.net home page
*** Running 32bit CPDN from 64bit Linux - Discussion ***

*** Running 32bit CPDN from 64bit Linux - Discussion ***

Questions and Answers : Unix/Linux : *** Running 32bit CPDN from 64bit Linux - Discussion ***
Message board moderation

To post messages, you must log in.

Previous · 1 . . . 10 · 11 · 12 · 13 · 14 · 15 · 16 . . . 18 · Next

AuthorMessage
AndreyOR

Send message
Joined: 12 Apr 21
Posts: 108
Credit: 4,621,250
RAC: 21,559
Message 66056 - Posted: 6 Sep 2022, 0:06:03 UTC - in response to Message 66055.  
Last modified: 6 Sep 2022, 0:13:25 UTC

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.
ID: 66056 · Report as offensive     Reply Quote
AndreyOR

Send message
Joined: 12 Apr 21
Posts: 108
Credit: 4,621,250
RAC: 21,559
Message 66058 - Posted: 6 Sep 2022, 1:54:42 UTC

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..
ID: 66058 · Report as offensive     Reply Quote
Profile Dave Jackson
Volunteer moderator

Send message
Joined: 15 May 09
Posts: 3581
Credit: 10,761,686
RAC: 5,528
Message 66061 - Posted: 6 Sep 2022, 8:45:18 UTC - in response to Message 66058.  

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..


Thank you. Now updated.
ID: 66061 · Report as offensive     Reply Quote
AndreyOR

Send message
Joined: 12 Apr 21
Posts: 108
Credit: 4,621,250
RAC: 21,559
Message 66062 - Posted: 6 Sep 2022, 20:35:55 UTC - in response to Message 66058.  

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.
ID: 66062 · Report as offensive     Reply Quote
Profile Alan K

Send message
Joined: 22 Feb 06
Posts: 451
Credit: 19,706,234
RAC: 2,509
Message 66064 - Posted: 6 Sep 2022, 22:27:45 UTC - in response to Message 66056.  

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.
ID: 66064 · Report as offensive     Reply Quote
Jean-David Beyer

Send message
Joined: 5 Aug 04
Posts: 718
Credit: 10,133,158
RAC: 6,135
Message 66065 - Posted: 7 Sep 2022, 1:35:57 UTC - in response to Message 66055.  

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
ID: 66065 · Report as offensive     Reply Quote
AndreyOR

Send message
Joined: 12 Apr 21
Posts: 108
Credit: 4,621,250
RAC: 21,559
Message 66067 - Posted: 7 Sep 2022, 7:58:41 UTC - in response to Message 66064.  
Last modified: 7 Sep 2022, 8:00:09 UTC

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.
ID: 66067 · Report as offensive     Reply Quote
AndreyOR

Send message
Joined: 12 Apr 21
Posts: 108
Credit: 4,621,250
RAC: 21,559
Message 66089 - Posted: 12 Sep 2022, 3:39:56 UTC

Does anyone know what the library lib32ncurses6 does and why it's listed as required for CPDN for Ubuntu?
ID: 66089 · Report as offensive     Reply Quote
Profile geophi
Volunteer moderator

Send message
Joined: 7 Aug 04
Posts: 2129
Credit: 58,267,435
RAC: 8,229
Message 66090 - Posted: 12 Sep 2022, 4:28:11 UTC - in response to Message 66089.  
Last modified: 12 Sep 2022, 4:29:50 UTC

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
ID: 66090 · Report as offensive     Reply Quote
AndreyOR

Send message
Joined: 12 Apr 21
Posts: 108
Credit: 4,621,250
RAC: 21,559
Message 66091 - Posted: 12 Sep 2022, 4:40:24 UTC - in response to Message 66090.  

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.
ID: 66091 · Report as offensive     Reply Quote
Profile Dave Jackson
Volunteer moderator

Send message
Joined: 15 May 09
Posts: 3581
Credit: 10,761,686
RAC: 5,528
Message 66092 - Posted: 12 Sep 2022, 7:14:40 UTC - in response to Message 66091.  
Last modified: 12 Sep 2022, 8:50:23 UTC

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.
ID: 66092 · Report as offensive     Reply Quote
Profile geophi
Volunteer moderator

Send message
Joined: 7 Aug 04
Posts: 2129
Credit: 58,267,435
RAC: 8,229
Message 66093 - Posted: 12 Sep 2022, 8:31:53 UTC - in response to Message 66092.  

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."
ID: 66093 · Report as offensive     Reply Quote
AndreyOR

Send message
Joined: 12 Apr 21
Posts: 108
Credit: 4,621,250
RAC: 21,559
Message 66094 - Posted: 12 Sep 2022, 10:22:47 UTC - in response to Message 66093.  

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.
ID: 66094 · Report as offensive     Reply Quote
Jean-David Beyer

Send message
Joined: 5 Aug 04
Posts: 718
Credit: 10,133,158
RAC: 6,135
Message 66095 - Posted: 12 Sep 2022, 13:34:27 UTC - in response to Message 66094.  

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)

ID: 66095 · Report as offensive     Reply Quote
Profile geophi
Volunteer moderator

Send message
Joined: 7 Aug 04
Posts: 2129
Credit: 58,267,435
RAC: 8,229
Message 66096 - Posted: 12 Sep 2022, 14:43:43 UTC - in response to Message 66094.  

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.
ID: 66096 · Report as offensive     Reply Quote
Glenn Carver

Send message
Joined: 29 Oct 17
Posts: 178
Credit: 1,883,629
RAC: 252
Message 66097 - Posted: 12 Sep 2022, 20:19:32 UTC - in response to Message 66096.  

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.
ID: 66097 · Report as offensive     Reply Quote
AndreyOR

Send message
Joined: 12 Apr 21
Posts: 108
Credit: 4,621,250
RAC: 21,559
Message 66098 - Posted: 12 Sep 2022, 20:28:05 UTC

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.
ID: 66098 · Report as offensive     Reply Quote
AndreyOR

Send message
Joined: 12 Apr 21
Posts: 108
Credit: 4,621,250
RAC: 21,559
Message 66099 - Posted: 12 Sep 2022, 20:49:36 UTC - in response to Message 66097.  

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. :-)
ID: 66099 · Report as offensive     Reply Quote
Profile geophi
Volunteer moderator

Send message
Joined: 7 Aug 04
Posts: 2129
Credit: 58,267,435
RAC: 8,229
Message 66100 - Posted: 12 Sep 2022, 21:42:47 UTC - in response to Message 66098.  

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.
ID: 66100 · Report as offensive     Reply Quote
Glenn Carver

Send message
Joined: 29 Oct 17
Posts: 178
Credit: 1,883,629
RAC: 252
Message 66101 - Posted: 13 Sep 2022, 19:13:33 UTC

@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.
ID: 66101 · Report as offensive     Reply Quote
Previous · 1 . . . 10 · 11 · 12 · 13 · 14 · 15 · 16 . . . 18 · Next

Questions and Answers : Unix/Linux : *** Running 32bit CPDN from 64bit Linux - Discussion ***

©2022 climateprediction.net