Log in

View Full Version : Find-A-Drug (Team #2020) Info and Links



PS2pcGAMER
06-09-2005, 06:13 AM
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 (http://www.find-a-drug.com/aboutus.html), Current Projects (http://www.find-a-drug.com/malaria-frame.html), FAQ (http://www.find-a-drug.com/faq.html), and Official Stats (http://www.find-a-drug.com/home1.html).


Stats Pages:
Free-DC by Bok (http://stats.free-dc.org/new/projpage.php?proj=fad) and FDC Team Page (http://stats.free-dc.org/new/teamstats.php?proj=fad&team=FreeDC)
Team AnandTech by Geoffs (http://fad.tastats.com/) and FDC Team Page (http://fad.tastats.com/team_stats_2.php?Team=FreeDC&suppress=n)
Team Ninja (http://www.team-ninja.com/vbulletin/dc_stats.php?s=&project=atfad) and FDC Team Page (http://www.team-ninja.com/vbulletin/dc_stats.php?action=details&project=atfad&statsid=6493)
XPC by Wizzard~Of~Ozz (http://fadstats.com/) and FDC Team Page (http://fadstats.com/mainframe.php?Team=2020)


Stat Signatures:
Bok's (http://www.free-dc.org/statstool.php)
Berni's (http://sero.cwsurf.de/) and Support Topic (http://www.find-a-drug.org.uk/forums/viewtopic.php?t=5091) Team Name: FreeDC


Third Party Apps:
FADProgress by our own MerePeer (http://free-dc.org/utilities/fadprogress/) and Support Topic (http://www.free-dc.org/forum/showthread.php?s=&threadid=8902) - Linux and Windows
FADSpy (http://www.fadspy.20gigs.com/) - Windows
FADInfo (http://www.find-a-drug.org.uk/forums/viewtopic.php?t=4183) - Linux
M-Killer - Hides FAD when Task Manager is opened (http://www.fadspy.20gigs.com/mkiller.zip) - Windows


Guides:
Running as a service (http://www.free-dc.org/forum/showthread.php?s=&threadid=7577&highlight=service) including using a single server (see PCZ's post for various methods)


Linux:
Setup:


cd /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"


Or just use WoO's Linux Script Generator (http://www.fadstats.com/Queries/Fadsetup.html)

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 (http://www.free-dc.org/forum/showthread.php?s=&threadid=9181&highlight=points)


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.

rsbriggs
06-09-2005, 06:22 AM
Excellent job! :thumbs:

PY 222
06-09-2005, 01:50 PM
This should be stickified. :thumbs:

Bok
06-10-2005, 11:38 AM
Stickied it earlier.

Excellent job PS2.

Bok :thumbs:

bwkaz
06-11-2005, 09:41 AM
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:


#!/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 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.

(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. ;)

Scoofy12
06-11-2005, 01:59 PM
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.

bwkaz
06-11-2005, 04:12 PM
Originally posted by Scoofy12
first, you don't need to use & to start ./loader in the background (i notice you used ./think directly however). Yeah, that was a typo. I was going from memory; it's fixed now. So's the issue with the & not being required.

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.


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. Hmm. So you just run them each locally, then, or did you set up samba?

Scoofy12
06-11-2005, 07:28 PM
Originally posted by bwkaz
Hmm. So you just run them each locally, then, or did you set up samba?

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.

bwkaz
06-11-2005, 09:24 PM
OK, thanks. That's what I'm doing on both these machines too.

PS2pcGAMER
06-11-2005, 09:48 PM
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. :cheers:

Bok
06-11-2005, 10:30 PM
Done the first parts...

Bok

PS2pcGAMER
06-11-2005, 10:33 PM
Originally posted by Bok
Done the first parts...

Bok

:cheers:

PS2pcGAMER
06-16-2005, 02:29 AM
Another 3rd Party App:

FADView (http://www.find-a-drug.org.uk/forums/viewtopic.php?t=5158)

rsbriggs
06-16-2005, 07:26 AM
I've never had much luck getting that one to work...

bwkaz
06-26-2005, 02:10 PM
Originally posted by redukt

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

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



start() {
<stuff>
} 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. :)

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.

redukt
06-26-2005, 02:41 PM
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 :(

bwkaz
06-26-2005, 09:43 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.)

redukt
06-26-2005, 09:49 PM
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'.



#!/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 $?


Make sure the script (in this case 'fad') is in /etc/init.d/

Run '/sbin/chkconfig fad --add'

Reboot, and you should have FAD running as normal (except automatically) on bootup!

rsbriggs
06-26-2005, 10:06 PM
And you probably want to change that "su redukt" to whatever user you want to run this as.....