Excellent job!
What is Find a Drug?
From Scootenalongnow:
Find a Drug is a private, not for profit organization that is attempting to identify from a vast database of known molecules(oxygen is a molecule), the likelihood(molecular structure is theoretical), through the use of their distributed client(Think), that certain molecules could interact with the human physiologic process to prevent, treat or cure certain diseases. More specifically, to identify candidate molecules that could have the correct structure to alter, potentiate or inhibit protein creation, utilization and/or disposal from the human body thus affecting the disease processes.
This first step in the identification process is useful to the research community in narrowing down this vast database against known disease processes(eg. Cancer), and making available the most likely candidates for further laboratory study.
OS Support:
-Linux
-Windows
Official Find-A-Drug Websites:
Home Page (all have the same info):
http://www.find-a-drug.com/
http://find-a-drug.co.uk/
http://www.find-a-drug.org.uk/
Support Forums:
http://www.find-a-drug.org.uk/forums/
Software Download:
http://www.find-a-drug.com/download.html
Also, the About Page, Current Projects, FAQ, and Official Stats.
Stats Pages:
Free-DC by Bok and FDC Team Page
Team AnandTech by Geoffs and FDC Team Page
Team Ninja and FDC Team Page
XPC by Wizzard~Of~Ozz and FDC Team Page
Stat Signatures:
Bok's
Berni's and Support Topic Team Name: FreeDC
Third Party Apps:
FADProgress by our own MerePeer and Support Topic - Linux and Windows
FADSpy - Windows
FADInfo - Linux
M-Killer - Hides FAD when Task Manager is opened - Windows
Guides:
Running as a service including using a single server (see PCZ's post for various methods)
Linux:
Setup:
Or just use WoO's Linux Script Generatorcd /home/USER - or wherever you want to create your Find-A-Drug Folder
mkdir fad
cd fad
wget http://www.find-a-drug.co.uk/fadv125g.tgz
tar -xzvf fadv125g.tgz
./fadsetup -nick "YOUR NICK" -email "YOUR EMAIL" -team 2020 -copies 1 -connect "When online" -country "United States"
Starting up FAD
./loader
Monitoring:
./server -list - Lists current work, uploaded work and queued work
./fadsetup -list - Lists your current FAD setting
./fadsetup -help - Help manual for more configuration options
Maximizing Points:
Linux seems to give a pretty signifcant higher CPU rating which would boost your production for people who are into stats. Read more about it here
Team Info:
Team Number: 2020
Members: Approx. 96
Overall Rank: 3
Daily Rank: 4
A special thanks to Bok, PCZ, PY 222, LAURENU2 and many others whose posts I have read and been able to collect this info from.
=====
The goal of this topic is to try and put relating FAD info in one topic, so if anyone has any changes/additions/whatever, feel free to add to this (and mods feel free to edit this post). Hopefully it will be of some use to both new and old users alike. If this ends up being valuable I (or others) can work on creating one for every project.
Also, let me know if I have any typos, as I wrote this at 3AM and am a little sleepy.
Last edited by PS2pcGAMER; 06-11-2005 at 01:07 AM.
This should be stickified.
Stickied it earlier.
Excellent job PS2.
Bok
On Linux, I was a bit confused when I first started FaD. When I ran ./fadsetup, it started ./loader for me (which started ./server and ./think). So for the first few days, every time I rebooted (my biggest processor is in my room, and I can't leave it on 24/7), I was starting ./fadsetup with all the options again.
You do not need to do this!
./fadsetup is only for modifying the current settings of the client. ./loader starts up both ./think and ./server. ./think uses the CPU to do the calculations, and ./server manages the job queue. I believe ./think and ./server communicate with each other over a localhost connection, but I may be mistaken on that.
So if you want to start it at boot time, you would start up ./loader in one of your bootscripts. My /etc/rc.d/init.d/fad script looks like this:
Your distro's boot scripts may require something other than evaluate_retval -- check another bootscript that you have to be sure. Figure out what it does to print out either "OK" or "FAILED" after it tries to start the program.Code:#!/bin/bash <pull in various files; you can usually get a skeleton from /etc/rc.d/init.d/template or similar> case "$1" in start) su yourusername -c "cd ~/fad && ./loader" evaluate_retval ;; stop) killall think server evaluate_retval ;; *) echo "Usage: $0 {start|stop}" ;; esac
(This will work for the Linux From Scratch bootscripts, at least.)
I use "su yourusername" because I want as few things running as root as possible.
-----
I am still trying to find out whether there's a way to "proxy" the connections. I've seen the various posts showing how to share the FaD directory on the server and run it from the client(s), but SMB is horribly broken and NFS is only slightly better, so I don't have any way of sharing the directory between my two machines. I think I remember something about this not being possible, which is too bad. Good thing I don't have a ton of machines.
-----
Note also that on Windows, the Cygwin project (www.cygwin.com) has a way to start a command line executable (such as e.g. loader.exe) as a service. It's called cygrunsrv, and is used by (at least) Cygwin-X11 to manage shared memory. But you can hook up any executable to the service entry in the registry -- I used it for the Cygwin sshd on my 2K box at work for a while. Not that sshd worked (something with bad environment variables or some such setting), but the service worked well.
I think it's also slightly easier to set up than instsrv/srvany, because I don't think there was any registry hacking. I think all I had to do was call cygrunsrv with the right options to install a service for whatever EXE. It installed itself as the service with the appropriate command line options to start the EXE.
I haven't actually tried this with FaD, though. I should, because then I'd know for sure whether it worked.
Last edited by bwkaz; 06-12-2005 at 08:16 AM.
"If you fail to adjust your notion of fairness to the reality of the Universe, you will probably not be happy."
-- Originally posted by Paratima
a couple of comments on this:
first, you don't need to use & to start ./loader in the background (i notice you used ./think directly however). ./loader forks itself off into the background and then returns.
also on SMB/NFS, the sharing does work (you can basically share any number of clients in one directory), but I found that when I used NFS sharing my output was considerably lower than giving each client a local directory, presumably due to delay on file accesses. note that this was an NFS share on a large heavily-loaded server with a few LAN hops between the crunchers and the server, so YMMV.
C-x C-c
Yeah, that was a typo. I was going from memory; it's fixed now. So's the issue with the & not being required.Originally posted by Scoofy12
first, you don't need to use & to start ./loader in the background (i notice you used ./think directly however).
Thanks!
Then I realized I didn't install it directly into my home directory, but rather into ~/fad, so the cd command has also been changed.
Hmm. So you just run them each locally, then, or did you set up samba?I found that when I used NFS sharing my output was considerably lower than giving each client a local directory, presumably due to delay on file accesses.
"If you fail to adjust your notion of fairness to the reality of the Universe, you will probably not be happy."
-- Originally posted by Paratima
Originally I used the NFS setup that's already set up by the university. but then i switched to just running them locally because of the speed increase.Originally posted by bwkaz
Hmm. So you just run them each locally, then, or did you set up samba?
C-x C-c
OK, thanks. That's what I'm doing on both these machines too.
"If you fail to adjust your notion of fairness to the reality of the Universe, you will probably not be happy."
-- Originally posted by Paratima
Erm, I can't edit my post...something about a forum time limit for editing posts.
Would an admin edit the quotation and remove the ./loader part for the setup. And then add some place under the Linux section on how to start FAD, use "./loader". Also, something about reading through this topic for more info about starting FAD as a daemon on Linux computers.
Thanks.
Good info Scoofy12 and bwkaz.
Done the first parts...
Bok
Originally posted by Bok
Done the first parts...
Bok
Another 3rd Party App:
FADView
Heh -- my script actually sources a pair of files here. First, it sources /etc/sysconfig/rc, which sets an rc_functions variable, then it sources $rc_functions to pull in the function stuff.Originally posted by redukt
Code:# Source function library. if [ -f /etc/init.d/functions ] ; then . /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ] ; then . /etc/rc.d/init.d/functions else exit 0 fi
Then, I can move the functions file by editing one file instead of all my scripts. Plus I don't need to test which file exists.
But I wanted what I posted here to be generic enough for most distros (excluding Slackware, because of its BSD init), so I just put a generic comment there. (I use LFS and its bootscripts, so I know how tedious it can sometimes be to adapt another distro's bootscript to your own. Not especially hard, mind you, just tedious.)
Was there a reason these were in functions? I guess I don't really see the point, myself. Unless this is to make it look like the rest of your bootscripts -- but in that case, you're getting distro specfiic again.Code:start() { <stuff> }
Also, you shouldn't have to "exit $?" at the end. All scripts will normally exit with the same status as the last pipeline they executed. And case will exit with the same status as the last command that it executed (which is the function). This line is therefore a little redundant.
"If you fail to adjust your notion of fairness to the reality of the Universe, you will probably not be happy."
-- Originally posted by Paratima
Meh. I'm a n00b. Yours wasn't working so I tweaked mine until it ran sorry if it was counter-productive. That post has been deleted, so you can do likewise to your corrective post if you want. Sorry
Last edited by redukt; 06-26-2005 at 06:28 PM.
....
I'm sorry, that came off completely wrong.
I didn't mean to say it was counter-productive, just that I had tried to stay distro-neutral. Your script is great for most Red Hat derived distros, and that's probably what a LOT of people are using.
I don't suppose there's any way for an admin to un-delete a post, is there? Otherwise, you could post it again. I do think it's worth having, as long as people know that it may not work out-of-the-box if they don't have something based on Red Hat. (Although mine won't work out-of-the-box at all, you have to adapt a few things... hmm.)
"If you fail to adjust your notion of fairness to the reality of the Universe, you will probably not be happy."
-- Originally posted by Paratima
Reposted. Works for RedHat / Fedora, and Probaby Mandrake. Possibly a few other distros.
Be sure to 'chmod 755 fad', assuming you name this file 'fad'.
Make sure the script (in this case 'fad') is in /etc/init.d/Code:#!/bin/sh # # description: Starts and stops the Find-a-Drug Program # chkconfig: 345 99 25 # # Source function library. if [ -f /etc/init.d/functions ] ; then . /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ] ; then . /etc/rc.d/init.d/functions else exit 0 fi # Avoid using root's TMPDIR unset TMPDIR RETVAL=0 start() { KIND="FAD" echo -n $"Starting $KIND service. " su redukt -c "cd /home/find-a-drug/ && ./loader" RETVAL=$? echo [ $RETVAL -eq 0 ] || RETVAL=1 return $RETVAL } stop() { KIND="FAD" echo -n $"Shutting down $KIND service. " killall server think RETVAL=$? echo [ $RETVAL -eq 0 ] return $RETVAL } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo $"Usage: $0 {start|stop|restart}" exit 1 esac exit $?
Run '/sbin/chkconfig fad --add'
Reboot, and you should have FAD running as normal (except automatically) on bootup!