• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

A guide to folding under Linux

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.
The links work for linuxfah.info. I'm not sure why you couldn't download the wrappers. Also if you followed the "Wrapper Save Location", it should create symbolic links to the cudart.dll files compared to cudart32_30_14.dll.
The links to the wrappers work now. They didn't yesterday. I guess that the problem was temporary. The syntax on the wget commands is wrong. I offered some suggestions on the 'discussion' tab of the page. I said:

The commands: wget http://www.linuxfah.info/wrapper-3.0/cudart/cudart.dll.so ~/.wine/drive_c/windows/system32
wget http://www.linuxfah.info/wrapper-3.0/cufft/cufft.dll.so ~/.wine/drive_/windows/system32

do not do what you think they do. 'wget' does not use the same syntax as 'cp'

A better command would be:
(cd ~/.wine/drive_c/windows/system32 && wget http://www.linuxfah.info/wrapper-3.0/cudart/cudart.dll.so)
(cd ~/.wine/drive_c/windows/system32 && wget http://www.linuxfah.info/wrapper-3.0/cufft/cufft.dll.so)

(hankb on Overclockers.)
(Apologies for the mangling of my formatting from the wiki.)

Another page that someone added recently is, http://linuxfah.info/index.php?title=Folding@Home_GPU3_on_Fedora13_x86-64 . I don't know if that is any better.

If you don't mind though can you tell me what is wrong with the first page? I'd like to update it to make sure it works. I haven't seen anyone say it doesn't so I haven't changed anything. But if it doens't work then I need to update it.
You state "You must also have either be running the 195 or 256 drivers from nvidia for cuda 3.0 support." It is working fine for me with the "260.19.29"

The reference to older drivers and the broken links led me to believe that the page was out of date. Apparently that first impression was wrong.
As for hfm. Just make sure you have mono 2.6 or later and it should work like a charm. I've had it running since the start :).
It would probably be worth adding that to the instructions (along with any other requirements.) Also it would be useful if HFM.exe would check the version of mono and report problems rather than producing the following output:
Code:
hbarta@olive:~/folding/hfm$ mono HFM.exe

** (HFM.exe:28752): WARNING **: The following assembly referenced from /home/hbarta/folding/hfm/protobuf-net.dll could not be loaded:
     Assembly:   System.Runtime.Serialization    (assemblyref_index=2)
     Version:    3.0.0.0
     Public Key: b77a5c561934e089
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/hbarta/folding/hfm/).


** (HFM.exe:28752): WARNING **: Could not load file or assembly 'System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.

** (HFM.exe:28752): WARNING **: Could not load file or assembly 'System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
Stacktrace:

  at ProtoBuf.Serializer.TryGetTag (System.Reflection.MemberInfo,int&,string&,ProtoBuf.DataFormat&,ProtoBuf.MemberSerializationOptions&) <0xffffffff>
  at ProtoBuf.Serializer.TryGetTag (System.Reflection.MemberInfo,int&,string&,ProtoBuf.DataFormat&,ProtoBuf.MemberSerializationOptions&) <0x00030>
  at ProtoBuf.Serializer`1<object>.Build () <0x00397>
  at ProtoBuf.Serializer`1<HFM.Instances.ProteinBenchmarkCollection>.DeserializeChecked<HFM.Instances.ProteinBenchmarkCollection> (HFM.Instances.ProteinBenchmarkCollection&,ProtoBuf.SerializationContext) <0x00033>
  at ProtoBuf.SerializerItemProxy`2<HFM.Instances.ProteinBenchmarkCollection, HFM.Instances.ProteinBenchmarkCollection>.Deserialize (HFM.Instances.ProteinBenchmarkCollection&,ProtoBuf.SerializationContext) <0x0006b>
  at ProtoBuf.Serializer.Deserialize<object> (ProtoBuf.SerializationContext) <0x00080>
  at ProtoBuf.Serializer.Deserialize<object> (System.IO.Stream) <0x0004b>
  at HFM.Instances.ProteinBenchmarkContainer.Deserialize (string) <0x00083>
  at HFM.Instances.ProteinBenchmarkContainer.Read (bool) <0x00037>
  at HFM.Instances.ProteinBenchmarkContainer.Read () <0x0000f>
  at HFM.Program.Initialize (System.Collections.Generic.IEnumerable`1<HFM.Classes.Argument>) <0x00481>
  at HFM.Program.Main (string[]) <0x001ab>
  at (wrapper runtime-invoke) HFM.Program.runtime_invoke_void_object (object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

	mono() [0x47b77f]
	mono() [0x4aef3f]
	/lib/libpthread.so.0(+0xf8f0) [0x7f401e5448f0]
	mono(mono_object_new_specific+0x16) [0x4caa86]
	mono(mono_exception_from_name_domain+0x1d) [0x50e1ed]
	mono(mono_exception_from_name_msg+0xe) [0x50e4de]
	mono() [0x41eb36]
	mono() [0x483521]
	[0x4038c168]

Debug info from gdb:

[Thread debugging using libthread_db enabled]
[New Thread 0x7f401ce18700 (LWP 28754)]
[New Thread 0x7f401f247700 (LWP 28753)]
0x00007f401e54393d in read () from /lib/libpthread.so.0
  3 Thread 0x7f401f247700 (LWP 28753)  0x00007f401e54411d in nanosleep () from /lib/libpthread.so.0
  2 Thread 0x7f401ce18700 (LWP 28754)  0x00007f401e542b50 in sem_wait () from /lib/libpthread.so.0
* 1 Thread 0x7f401f239740 (LWP 28752)  0x00007f401e54393d in read () from /lib/libpthread.so.0

Thread 3 (Thread 0x7f401f247700 (LWP 28753)):
#0  0x00007f401e54411d in nanosleep () from /lib/libpthread.so.0
#1  0x0000000000556342 in ?? ()
#2  0x00007f401e53b9ca in start_thread () from /lib/libpthread.so.0
#3  0x00007f401e01570d in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f401ce18700 (LWP 28754)):
#0  0x00007f401e542b50 in sem_wait () from /lib/libpthread.so.0
#1  0x00000000004e4aaa in ?? ()
#2  0x0000000000505035 in ?? ()
#3  0x0000000000570073 in ?? ()
#4  0x000000000058de21 in ?? ()
#5  0x00007f401e53b9ca in start_thread () from /lib/libpthread.so.0
#6  0x00007f401e01570d in clone () from /lib/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f401f239740 (LWP 28752)):
#0  0x00007f401e54393d in read () from /lib/libpthread.so.0
#1  0x000000000047b8f4 in ?? ()
#2  0x00000000004aef3f in ?? ()
#3  <signal handler called>
#4  0x00000000004caa86 in mono_object_new_specific ()
#5  0x000000000050e1ed in mono_exception_from_name_domain ()
#6  0x000000000050e4de in mono_exception_from_name_msg ()
#7  0x000000000041eb36 in ?? ()
#8  0x0000000000483521 in ?? ()
#9  0x000000004038c168 in ?? ()
#10 0x0000000000000000 in ?? ()

=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

Aborted
hbarta@olive:~/folding/hfm$
thanks,
hank
 
Hank, thank you for the suggestions I have made the changes. I also clarified you need 196 or newer drivers for cuda 3.0. I appreciated your feedback.

What version of mono are you running (mono -v). I'm pming harlem to see if he has any ideas for you.
 
Also it would be useful if HFM.exe would check the version of mono and report problems rather than producing the following output:
Code:
hbarta@olive:~/folding/hfm$ mono HFM.exe

** (HFM.exe:28752): WARNING **: The following assembly referenced from /home/hbarta/folding/hfm/protobuf-net.dll could not be loaded:
     Assembly:   System.Runtime.Serialization    (assemblyref_index=2)
     Version:    3.0.0.0
     Public Key: b77a5c561934e089
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/hbarta/folding/hfm/).


** (HFM.exe:28752): WARNING **: Could not load file or assembly 'System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.

** (HFM.exe:28752): WARNING **: Could not load file or assembly 'System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
Stacktrace:

  at ProtoBuf.Serializer.TryGetTag (System.Reflection.MemberInfo,int&,string&,ProtoBuf.DataFormat&,ProtoBuf.MemberSerializationOptions&) <0xffffffff>
  at ProtoBuf.Serializer.TryGetTag (System.Reflection.MemberInfo,int&,string&,ProtoBuf.DataFormat&,ProtoBuf.MemberSerializationOptions&) <0x00030>
  at ProtoBuf.Serializer`1<object>.Build () <0x00397>
  at ProtoBuf.Serializer`1<HFM.Instances.ProteinBenchmarkCollection>.DeserializeChecked<HFM.Instances.ProteinBenchmarkCollection> (HFM.Instances.ProteinBenchmarkCollection&,ProtoBuf.SerializationContext) <0x00033>
  at ProtoBuf.SerializerItemProxy`2<HFM.Instances.ProteinBenchmarkCollection, HFM.Instances.ProteinBenchmarkCollection>.Deserialize (HFM.Instances.ProteinBenchmarkCollection&,ProtoBuf.SerializationContext) <0x0006b>
  at ProtoBuf.Serializer.Deserialize<object> (ProtoBuf.SerializationContext) <0x00080>
  at ProtoBuf.Serializer.Deserialize<object> (System.IO.Stream) <0x0004b>
  at HFM.Instances.ProteinBenchmarkContainer.Deserialize (string) <0x00083>
  at HFM.Instances.ProteinBenchmarkContainer.Read (bool) <0x00037>
  at HFM.Instances.ProteinBenchmarkContainer.Read () <0x0000f>
  at HFM.Program.Initialize (System.Collections.Generic.IEnumerable`1<HFM.Classes.Argument>) <0x00481>
  at HFM.Program.Main (string[]) <0x001ab>
  at (wrapper runtime-invoke) HFM.Program.runtime_invoke_void_object (object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

	mono() [0x47b77f]
	mono() [0x4aef3f]
	/lib/libpthread.so.0(+0xf8f0) [0x7f401e5448f0]
	mono(mono_object_new_specific+0x16) [0x4caa86]
	mono(mono_exception_from_name_domain+0x1d) [0x50e1ed]
	mono(mono_exception_from_name_msg+0xe) [0x50e4de]
	mono() [0x41eb36]
	mono() [0x483521]
	[0x4038c168]

Debug info from gdb:

[Thread debugging using libthread_db enabled]
[New Thread 0x7f401ce18700 (LWP 28754)]
[New Thread 0x7f401f247700 (LWP 28753)]
0x00007f401e54393d in read () from /lib/libpthread.so.0
  3 Thread 0x7f401f247700 (LWP 28753)  0x00007f401e54411d in nanosleep () from /lib/libpthread.so.0
  2 Thread 0x7f401ce18700 (LWP 28754)  0x00007f401e542b50 in sem_wait () from /lib/libpthread.so.0
* 1 Thread 0x7f401f239740 (LWP 28752)  0x00007f401e54393d in read () from /lib/libpthread.so.0

Thread 3 (Thread 0x7f401f247700 (LWP 28753)):
#0  0x00007f401e54411d in nanosleep () from /lib/libpthread.so.0
#1  0x0000000000556342 in ?? ()
#2  0x00007f401e53b9ca in start_thread () from /lib/libpthread.so.0
#3  0x00007f401e01570d in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f401ce18700 (LWP 28754)):
#0  0x00007f401e542b50 in sem_wait () from /lib/libpthread.so.0
#1  0x00000000004e4aaa in ?? ()
#2  0x0000000000505035 in ?? ()
#3  0x0000000000570073 in ?? ()
#4  0x000000000058de21 in ?? ()
#5  0x00007f401e53b9ca in start_thread () from /lib/libpthread.so.0
#6  0x00007f401e01570d in clone () from /lib/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f401f239740 (LWP 28752)):
#0  0x00007f401e54393d in read () from /lib/libpthread.so.0
#1  0x000000000047b8f4 in ?? ()
#2  0x00000000004aef3f in ?? ()
#3  <signal handler called>
#4  0x00000000004caa86 in mono_object_new_specific ()
#5  0x000000000050e1ed in mono_exception_from_name_domain ()
#6  0x000000000050e4de in mono_exception_from_name_msg ()
#7  0x000000000041eb36 in ?? ()
#8  0x0000000000483521 in ?? ()
#9  0x000000004038c168 in ?? ()
#10 0x0000000000000000 in ?? ()

=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

Aborted
hbarta@olive:~/folding/hfm$
thanks,
hank

Actually, what would really be useful is if .NET/Mono did this for us. :) And as you can see, it can be difficult to get the correct packages in place to make things work. :( As a Windows guy, this is frustrates me to no end b/c it's so easy on Windows. ;) In fact, in upcoming versions I'm going to change Linux/Mono support to "unofficial support" status - due to the fact that I don't have the time to check compatibility with every distro and set of Mono packages out there. I help when I can however, especially my T32 brothers. :)

Checking the .NET version would be simple; it's a single install and can easily be found in the Windows registry. Checking for Mono version, however, would be a craps shoot at best. To be honest, I'm not even sure HOW I would go about checking packages on a Linux system. Maybe there's a library in the Mono Framework to handle this but I doubt it. I'd likely have to resort to running terminal commands and parsing the output - yuck! HFM is an open source project though... so if you'd like to take a stab at writing a version checker... by all means. Actually, that's not a bad idea for a general class/library.

OK, to your actual problem. What version of Ubuntu are you on? Did you enable any custom source repos?
 
With the current state of FAH, ignoring v7 since it can't be monitored, if you want to fold smp + gpu and are not going to flash the gpu bios to set your OC, the best setup is x64 Windows/VMware/Linux for the SMP client and native Windows gpu folding. HFM would run in native Windows and avoid the mono hassle. With the Fermi cards having such a good OC potential, the ability to OC the card in Windows easily overcomes the VMware OH loss on the SMP client.
 
Hank, thank you for the suggestions I have made the changes. I also clarified you need 196 or newer drivers for cuda 3.0. I appreciated your feedback.

What version of mono are you running (mono -v). I'm pming harlem to see if he has any ideas for you.

I've upgraded according to the instructions here: http://badgerports.org/

I now have:

Code:
hbarta@olive:~$ mono -V
Mono JIT compiler version 2.6.7 (Debian 2.6.7-5ubuntu1~dhx1)
Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com
	TLS:           __thread
	GC:            Included Boehm (with typed GC and Parallel Mark)
	SIGSEGV:       altstack
	Notifications: epoll
	Architecture:  amd64
	Disabled:      none
hbarta@olive:~$

And HFM seems to work fine. :thup:

If you want to see what packages ship with Ubuntu, start here: http://packages.ubuntu.com/

Looks like 10.04 has 2.4.4 and 11.04 has 2.6.7.

thanks,
hank
 
Actually, what would really be useful is if .NET/Mono did this for us. :) ...

OK, to your actual problem. What version of Ubuntu are you on? Did you enable any custom source repos?
I probably make too many assumptions. I thought there would be a simple API to check versions (like the Perl 'require' statement) but have to admit I haven't looked for one.

I'm on Ubuntu 10.04 LTS which uses mono v2.4.4. I've enabled an additional repository to get 2.6.7. It looks like the two subsequent versions (10.10 and 11.04) both have 2.6.7 out of the box.

thanks,
hank
 
Back