• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

Folding causing instability in OpenOffice (linux)?

unhappy_mage

[H]ard|DCer of the Month - October 2005
Joined
Jun 29, 2004
Messages
11,455
Hey guys,
I've got a school potentially lined up, if we can solve one problem. On the machines I tested F@H on, OpenOffice is going zombie and taking 100% cpu. None of the other machines are exhibiting this behavior, just the ones with F@H. These machines are either 900mHz or 1.2gHz athlons, average of 256 MB of memory. We're running Fedora Core 2 on them.

Any other statistics/straces/information I can help with, please lmk and I'll post it. Thanks for any suggestions.
 
Take a look at memory usage. If you have FAH configured to accept the big WUs, I will bet that when OpenOffice is running with FAH that your memory starved and the good old swap/page engine is getting a work out.
 
Will try to get you the perl script I used to use when I was an admin. We had trouble with openoffice just getting really sluggish and not taking the cpu time away from folding, so the script was set to pause folding processes and check the load average every minute. I usually set the minimum_load variable around 50% or maybe 130% for duallies. So if anyone needed to do anything important folding would back off, and then come back once they were through.

If you can't tell, its old and in need of some updating.

#!/usr/bin/perl -w
# written by ptn on 11/04/02
# fix bug rename bad WU 11/12/02
# This program will start Folding gromacs and monitor the job. If the jobs seem
# hung up it will kill it and restart with no options i.e. tinker core and vice versa.
# If user run any program and use the cpu it will stop the job and continue on when
# user's job finish within 2 minutes. The waiting period loop between checks is
# around 2 mins, twice the sleep constant. One can also run the program with argument
# stop to kill folding process then exit the program.
# one should run the program like example below if c shell is the user's shell
# fold >& fold.log &
# if you decide to start this program automactically at boot up you could add the
# following line to the file rc.local
# su <folder user's name> -c "fold > /<fold_directory>/fold.log 2>&1"

# NOTE: user's normaly change the following constants: $FoldDir, $FAH3Console, $options
# and $sleep

# user's Folding command line options:
$options='-advmethods -forceasm';
# user's check time interval
$sleep = 60;
# user's minimum cpuload value, must be less than the set value it will start folding
$minld = 0.7;
# find hostname
$host=`hostname`;chop($host);
# user's Folding directory location , uncomment second line if dual cpus
$FoldDir="/data/$host";
$FoldDir2="/data/${host}2";
# user's maximum cpuload value, must be greater than the set value it will stop folding
if (-x $FoldDir2) {
$maxld = 2.3;
}else{
$maxld = 1.3;
}
# user's Folding program location
$FAH3Console="/home/ptn/bin/FAH3Console";
# initial value for stop flag
$stop=0;
#######################Do not edit below this line ######################################
if (! -x $FAH3Console) {
die "ERROR: can't find executable $FAH3Console\n";
}
if (defined $ARGV[0]) {
if ($ARGV[0] eq 'stop') {
system("kill `cat $FoldDir/fold.pid`");
&KillFold;
system("rm -f $FoldDir/core.*");
system("rm -f $FoldDir2/core.[0-9]*") if (-x $FoldDir2);
}else {
my $cmd = $0;
$cmd = $1 if ($cmd =~ m!/.*/([^ ]+)$!);
print "Usage:\n\t$cmd [stop]\n";
print "Example 1: To start smart folding process, type";
print "\n\t$cmd\n";
print "Example 2: To kill folding process and exit, type";
print "\n\t$cmd stop\n";
}
exit;
}

open(OUTFILE, "> $FoldDir/fold.pid") || die "ERROR: can't write to file $FoldDir/fold.pid\n";
print OUTFILE "$$";
close(OUTFILE);
$option = $options;
$killCount=0;
Begin:
$load = (&findLoad);
if ($load < $minld) {
#stop old hung up Folding jobs if exists.
&KillFold;
#start new Folding jobs
my $time = localtime(time);
if ($killCount > 1){
sleep ($sleep * 5);
my $curload = &findLoad;
if ($curload < $minld) {
print "Try to restart bad WUs by remove queue.dat file at $time\n";
my $timestamp = $time; $timestamp =~ s/ /_/g;
system("mv -f $FoldDir/queue.dat $FoldDir/queue.dat.$timestamp");
system("mv -f $FoldDir2/queue.dat $FoldDir2/queue.dat.$timestamp") if (-x $FoldDir2);
}
}
print "Start Folding processes at: $time\n";
# print "load= $load , Invoking:\ncd ${FoldDir}; nice $FAH3Console $options\n";
system("\(cd $FoldDir; nice $FAH3Console $option\) &");
system("\(cd $FoldDir2; nice $FAH3Console $option\) &") if (-x $FoldDir2);
if ($option eq '') {
$option=$options;
}else {
$option='';
}
sleep $sleep;
#}elsif ($load > $maxld) {
# &KillFold;
# sleep $sleep;
# goto Begin;
}else {
my $time = localtime(time);
print "Waiting for load=$load to come down at: $time\n";
sleep $sleep;
$killCount=0;
goto Begin;
}
Inloop:
sleep $sleep;
$load = (&findLoad);
if ($load < $minld){
if ($stop) {
$stop=0;
&ContinueFold;
sleep $sleep;
}elsif ($stop==0) {
&KillFold;
goto Begin;
}
}elsif ($load > $maxld && $stop==0) {
&StopFold;
$stop=1;
sleep $sleep;
}
goto Inloop;
exit 1;

sub StopFold {
my $time = localtime(time);
print "STOP Folding processes at: $time\n";
my $ps = `ps -uxw | egrep FahCore | egrep -v grep | awk \'{print \$2}\'`;
$ps .= `ps -uxw | egrep FAH3Console | egrep -v grep | awk \'{print \$2}\'`;
@PS=split(' ',$ps);
foreach my $p (@PS) {
system("kill -STOP $p");
}
}

sub ContinueFold {
my $time = localtime(time);
print "RESTART Folding processes at: $time\n";
foreach my $p (@PS) {
system("kill -CONT $p");
}
}

sub findLoad {
my $load;
open(INFILE,"< /proc/loadavg") || die "ERROR: Can't read file /proc/loadavg\n";
while(<INFILE>) {
$load=(split(' ',$_))[0];
last;
}
close(INFILE);
return $load;
}

sub KillFold {
my $time = localtime(time);
print "Kill Folding processes at: $time\n";
my $ps = `ps -uxw | egrep FAH3Console | egrep -v grep | awk \'{print \$2}\'`;
$ps .= `ps -uxw | egrep FahCore | egrep -v grep | awk \'{print \$2}\'`;
my @PS = split(' ',$ps);
foreach my $p (@PS) {
#print "kill $p\n";
system("kill -9 $p");
}
$killCount++;
}
 
Back
Top