Message boards :
Number crunching :
Porting s@h V7 to Linux
Message board moderation
Author | Message |
---|---|
ivan Send message Joined: 5 Mar 01 Posts: 783 Credit: 348,560,338 RAC: 223 |
My big Linux server ran dry tonight, so I decided to upgrade to the latest BOINC before killing app_info.xml and letting the seti v7 stuff download. Of course I ran into the usual problem (due to my not being able to run a modern kernel because of the conservative nature of my CERN colleagues): [eesridr:BOINC] > ./boinc --daemon ./boinc: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory [eesridr:BOINC] > ldd boinc ./boinc: /lib/libc.so.6: version `GLIBC_2.7' not found (required by ./boinc) ./boinc: /lib/libc.so.6: version `GLIBC_2.15' not found (required by ./boinc) ./boinc: /lib/libc.so.6: version `GLIBC_2.11' not found (required by ./boinc) linux-gate.so.1 => (0xffffe000) libcurl.so.4 => not found libssl.so.1.0.0 => not found libcrypto.so.1.0.0 => not found libdl.so.2 => /lib/libdl.so.2 (0x00bbe000) libz.so.1 => /lib/libz.so.1 (0x00d93000) libX11.so.6 => /usr/lib/libX11.so.6 (0x001ee000) libXss.so.1 => /usr/lib/libXss.so.1 (0xf7fb3000) libpthread.so.0 => /lib/libpthread.so.0 (0x00ba2000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00101000) libm.so.6 => /lib/libm.so.6 (0x00bc5000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00d85000) libc.so.6 => /lib/libc.so.6 (0x00a43000) /lib/ld-linux.so.2 (0x00a24000) libXau.so.6 => /usr/lib/libXau.so.6 (0x00c95000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00da8000) libXext.so.6 => /usr/lib/libXext.so.6 (0x00d68000) So, I had to again download the BOINC source and compile it in situ -- again having to learn yet another versioning system (I'm sure it was svn just recently, now it's git). So that got things flowing again, but no CUDA MB version for Linux... Where do I download the seti V7 CUDA sources to compile on Linux? |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
here: https://setisvn.ssl.berkeley.edu/svn/branches/sah_v7_opt more precisely, here: https://setisvn.ssl.berkeley.edu/svn/branches/sah_v7_opt/Xbranch (and don't forget to share your Linux port with community ;) ) SETI apps news We're not gonna fight them. We're gonna transcend them. |
jason_gee Send message Joined: 24 Nov 06 Posts: 7489 Credit: 91,093,184 RAC: 0 |
Where do I download the seti V7 CUDA sources to compile on Linux? Hi Ivan, Long time no speak :) We were just chatting about that you may come out a day after Windows release & here you are :D Sources available via Berkeley's svn repository at https://setisvn.ssl.berkeley.edu/svn/branches/sah_v7_opt/Xbranch , email contact at jgopt dot org if you are interested in contributing Linux platform updates needed for V7 multibeam. probably will need the odd tweak (especially makefiles). Let me know what at the listed email contact. Once I have the necessary tweaks-updates & we confirm operation, especially of the new autocorrelations, I'd request stock distribution. Jason "Living by the wisdom of computer science doesn't sound so bad after all. And unlike most advice, it's backed up by proofs." -- Algorithms to live by: The computer science of human decisions. |
ivan Send message Joined: 5 Mar 01 Posts: 783 Credit: 348,560,338 RAC: 223 |
Where do I download the seti V7 CUDA sources to compile on Linux? Ciao Jason, Raistmer; Ok, I'll try to take a look over the weekend (I'd better do some CERN work tomorrow...). At least get a feel for what's involved. Any executables I make would probably be of limited value elsewhere due to the ancient libraries I have to deal with (and the multiple versions of CUDA) but I'll certainly feed back any mods to source files that I find necessary. I guess it will need to use an app_info.xml -- hope to get some guidance there from the Lunatix installer we're promised for next week. |
Urs Echternacht Send message Joined: 15 May 99 Posts: 692 Credit: 135,197,781 RAC: 211 |
Ciao Jason, Raistmer; Try to link the libs for the small CPU part needed static and only the NV GPU part with shared libs, that will reduce the compatibility problems a lot. Newer glibc versions are usually compatible to older ones. _\|/_ U r s |
ivan Send message Joined: 5 Mar 01 Posts: 783 Credit: 348,560,338 RAC: 223 |
here: https://setisvn.ssl.berkeley.edu/svn/branches/sah_v7_opt Well, there were no changes necessary to get it to compile, just a bit of a merry-go-round to get the ./configure options right. It didn't link, though, because I was using BOINC 7.0.65 and that has had the boinc_ops_cumulative function removed. So I reverted to using 7.0.31 but that had a problem that NULL wasn't defined in boinc_api.h so I just shoved in a #include <stddef.h>and it all worked. I'm running a test on one of my current work-units now. Where are the standard test WUs? |
William Send message Joined: 14 Feb 13 Posts: 2037 Credit: 17,689,662 RAC: 0 |
|
ivan Send message Joined: 5 Mar 01 Posts: 783 Credit: 348,560,338 RAC: 223 |
I'm running a test on one of my current work-units now. Where are the standard test WUs? Looks good so far; it took 17 minutes to run. The standard WU is still running but I get this at the head of a diff: [eesridr:BOINC] > diff projects/setiathome.berkeley.edu/26oc12ac.27301.396954.8.12.56_0_0 /tmp/seti/result.sah 593d592 < <min_vgc>525</min_vgc> 612,613d610 < <pfb_ntaps>16</pfb_ntaps> < <pfb_width_factor>1.04999995</pfb_width_factor> 665d661 < <iq_modified>0</iq_modified> 676c672 < <peak_power>18.271345266537</peak_power> --- > <peak_power>18.271329879761</peak_power> 693c689 < <peak_power>18.509395914857</peak_power> --- > <peak_power>18.509393692017</peak_power> 710c706 < <peak_power>18.183393500374</peak_power> --- > <peak_power>18.183385848999</peak_power> |
jason_gee Send message Joined: 24 Nov 06 Posts: 7489 Credit: 91,093,184 RAC: 0 |
Looks good so far; it took 17 minutes to run. The standard WU is still running but I get this at the head of a diff: Six significant digits match well below threshold seems about right for the processing chain (I'm guessing spikes). If you're happy to run live a little & see if there are autocorrelations active & matching (or not) that'd be great. "Living by the wisdom of computer science doesn't sound so bad after all. And unlike most advice, it's backed up by proofs." -- Algorithms to live by: The computer science of human decisions. |
ivan Send message Joined: 5 Mar 01 Posts: 783 Credit: 348,560,338 RAC: 223 |
Looks good so far; it took 17 minutes to run. The standard WU is still running but I get this at the head of a diff: I'll see if I can work out an app_info.xml file. I've set up a cron job to copy the ongoing standard result.sah to /tmp every minute so hopefully I can catch the completed file before it gets reported and deleted. So far it's taken over 5-1/2 hours to do what the C1060 did in 17 minutes. |
jason_gee Send message Joined: 24 Nov 06 Posts: 7489 Credit: 91,093,184 RAC: 0 |
Looks good so far; it took 17 minutes to run. The standard WU is still running but I get this at the head of a diff: Yeah those peskie astronomers have a way of looking at things, which throws the whole shortie and drift scan thing out the Window. Hopefully over summer they'll be perving at Fort Lauderdale. "Living by the wisdom of computer science doesn't sound so bad after all. And unlike most advice, it's backed up by proofs." -- Algorithms to live by: The computer science of human decisions. |
ivan Send message Joined: 5 Mar 01 Posts: 783 Credit: 348,560,338 RAC: 223 |
OK, I've started a new thread because the existing one is piggy-backing onto another thread about BOINC V7. So, here are the basics of what I did to get s@h V7 compiled on a Linux server. Note that the server has CUDA libraries and SDK installed, as well as an appropriate driver; I'm not about to go into details on how to set that up... $ svn checkout https://setisvn.ssl.berkeley.edu/svn/branches/sah_v7_opt/Xbranch $ cd Xbranch/ $ chmod +x _autosetup $ ./_autosetup $ ./configure --disable-server BOINCDIR=/home/eesridr/boinc_core_release_7_0_31/ \ --enable-sse3 CFLAGS='-O3 -march=nocona -mtune=nocona -mpreferred-stack-boundary=8 \ -fexceptions -fno-rounding-math -fno-signaling-nans -fcx-limited-range -fno-math-errno \ -ffinite-math-only -fno-trapping-math --param inline-unit-growth=3000 -DNDEBUG \ -DHAVE_STRCASECMP -fpeel-loops -funroll-loops -fgcse-sm -fgcse-las -fweb \ -I/usr/local/cuda/include' $ make -j 8 Obviously the locations of the BOINC and CUDA include directories will need to be changed to reflect your personal set-up. Note too the remarks in the earlier thread about getting an appropriate version of BOINC to link against. If you're interested in following the saga over the next few days, I'm experimenting on this machine. |
Urs Echternacht Send message Joined: 15 May 99 Posts: 692 Credit: 135,197,781 RAC: 211 |
Sadly your choice of BOINC libs is not so lucky, because 7.0.31 does not support the app_config mechanism, which would allow the use of multiple instances on one GPU without using anonymous platform. Your first try with 7.0.65 would have been better. "boinc_ops_cumulative" function is not in use anymore it can be replaced with some newer function "fraction_done(progress,remaining)" Eventually you'll need to update remaining just before the function call. _\|/_ U r s |
ivan Send message Joined: 5 Mar 01 Posts: 783 Credit: 348,560,338 RAC: 223 |
Oh, well, I'm giving up for the night. My first attempt at an app_info.xml failed miserably so it's back to standard for now. |
Khangollo Send message Joined: 1 Aug 00 Posts: 245 Credit: 36,410,524 RAC: 0 |
Try this: <app_info> <app> <name>setiathome_v7</name> </app> <file_info> <name>setiathome_x41_x86_64-pc-linux-gnu_cuda42</name> <executable/> </file_info> <file_info> <name>libcudart.so.4</name> <executable/> </file_info> <file_info> <name>libcufft.so.4</name> <executable/> </file_info> <app_version> <app_name>setiathome_v7</app_name> <version_num>700</version_num> <plan_class>cuda42</plan_class> <avg_ncpus>0.01</avg_ncpus> <max_ncpus>0.01</max_ncpus> <coproc> <type>CUDA</type> <count>0.333333</count> </coproc> <file_ref> <file_name>setiathome_x41_x86_64-pc-linux-gnu_cuda42</file_name> <main_program/> </file_ref> <file_ref> <file_name>libcudart.so.4</file_name> </file_ref> <file_ref> <file_name>libcufft.so.4</file_name> </file_ref> </app_version> </app_info> This is for CUDA 4.2, 3 instances per GPU. For 5.0, the plan class is cuda50 (and libraries .so.5, of course). Also, you can change the count to 1.0 for 1 instance per GPU |
ivan Send message Joined: 5 Mar 01 Posts: 783 Credit: 348,560,338 RAC: 223 |
Thanks, mate, I'll give that a go in the morning. Currently just finished today's Guardian Prize Crossword and still awaiting iPlayer to give tonight's Have I Got News For You. Two fingers left in the Scotch bottle, so bedtime soon... |
ivan Send message Joined: 5 Mar 01 Posts: 783 Credit: 348,560,338 RAC: 223 |
No, still trashing work-units. Can anyone spot my mistake(s)? <app_info> <app> <name>setiathome_v7</name> </app> <file_info> <name>setiathome_7.01_i686-pc-linux-gnu</name> <executable/> </file_info> <app_version> <app_name>setiathome_v7</app_name> <version_num>701</version_num> <file_ref> <file_name>setiathome_7.01_i686-pc-linux-gnu</file_name> <main_program/> </file_ref> </app_version> <file_info> <name>setiathome_x41_x86_64-pc-linux-gnu_cuda41</name> <executable/> </file_info> <app_version> <app_name>setiathome_v7</app_name> <version_num>701</version_num> <platform>x86_64-pc-linux-gnu</platform> <plan_class>cuda42</plan_class> <avg_ncpus>0.05</avg_ncpus> <max_ncpus>1.0</max_ncpus> <coproc> <type>CUDA</type> <count>1.0</count> </coproc> <file_ref> <file_name>setiathome_x41_x86_64-pc-linux-gnu_cuda41</file_name> <main_program/> </file_ref> </app_version> <app> <name>astropulse_v6</name> </app> <app_version> <app_name>astropulse_v6</app_name> <version_num>601</version_num> <file_ref> <file_name>astropulse_6.01_i686-pc-linux-gnu</file_name> <main_program/> </file_ref> </app_version> <app_version> <app_name>astropulse_v6</app_name> <version_num>603</version_num> <file_ref> <file_name>astropulse_6.03_x86_64-pc-linux-gnu</file_name> <main_program/> </file_ref> </app_version> </app_info> |
Claggy Send message Joined: 5 Jul 99 Posts: 4654 Credit: 47,537,079 RAC: 4 |
Don't think it's anything to do with your app_info, the app does start: <core_client_version>7.0.65</core_client_version> or <core_client_version>7.0.65</core_client_version> But there is no mention of the cudart or cufft files in your app_info, so no links in your slot directories when the app starts. Claggy |
ivan Send message Joined: 5 Mar 01 Posts: 783 Credit: 348,560,338 RAC: 223 |
Don't think it's anything to do with your app_info, the app does start: But is that necessary when they are available in the standard system locations? My working V6 app_info had, inter alia: <app_version> <app_name>setiathome_enhanced</app_name> <version_num>611</version_num> <platform>x86_64-pc-linux-gnu</platform> <plan_class>cuda_fermi</plan_class> <avg_ncpus>0.05</avg_ncpus> <max_ncpus>1.0</max_ncpus> <coproc> <type>CUDA</type> <count>1.0</count> </coproc> <file_ref> <file_name>setiathome_x41_x86_64-pc-linux-gnu_cuda41</file_name> <main_program/> </file_ref> </app_version> |
Claggy Send message Joined: 5 Jul 99 Posts: 4654 Credit: 47,537,079 RAC: 4 |
Does the app run O.K when run offline in a Bench? Claggy |
©2024 University of California
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.