Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
GOTSpectrum

LTT Folding Team's Emergency Response to Covid-19

This event has ended and I recommend you guys head over to the Folding Community Board for any general folding conversation. 

 

 

Recommended Posts

Just now, WaldorfMan said:

Sooooooooo - how do we go about grabbing jobs from this server explicitly?

 

And AWESOME job on the video guys!   Loved it.

You don't. It's random draw.  

Link to post
Share on other sites

Go you really want to connect to a server that linus built  ?


Folding Month 2020 Event Starts October, 12th (00:00 BST) join the fight against COVID-19 with Folding. Lots of prizes to be won.

LTT Official Folding Month 2020 Thread  | Sign up here 

 

Are you looking for a good cause to support ?   Macmillan Cancer Support | Cancer Research UK

 

Folding systems - 

 

Ryzen 7 2700X | ASUS ROG STRIX B450-F GAMING | Corsair Vengeance LPX 16GB (2x8) DDR4-2400 | 250GB Samsung 970 EVO Plus M.2  NVMe | ADATA ASU650SS-960GT-C 960GB Ultimate | EVGA GeForce RTX 2060 SC ULTRA GAMING 6GB | EVGA GeForce RTX 2060 SUPER SC ULTRA GAMING 8GB | Corsair 750W TX750M 80Plus Gold | GameMax F15M Mesh | Windows 10 Pro

 

Ryzen 7 1700 | ASUS ROG STRIX B450-F GAMING | Corsair Vengeance LPX 8GB (2x4) DDR4-2400 | 500GB Samsung 960 EVO NVMe M.2 |  EVGA GeForce RTX 2060 SC ULTRA GAMING 6GB | EVGA GeForce RTX 2060 SUPER SC ULTRA GAMING 8GB | Corsair 750W TX750M 80Plus Gold | MasterBox MB500 | Windows 10 Pro

Link to post
Share on other sites

Just bought 2 shirts!


My Folding Stats

My BOINC Stats

 

 

VelosterN:

AMD Ryzen 7 3800X - Asus ROG Strix X570-E Gaming - Corsair Vengeance RGB Pro 3200Mhz 32GB - Asus ROG Strix Gaming 5700 XT OC

Cooler Master MasterCase Pro 5 - Samsung 970 Evo Plus 250GB M.2-2280 NVMe - Samsung 970 Pro 512GB M.2-2280 NVMe - Samsung 860 Pro 256 GB 2.5" SSD X2

EVGA P2 80+ Platinum 850Watt PSU - BenQ XL2730Z 27.0" 2560x1440 144 Hz - Corsair H115i

Corsair K70 LUX - Logitech G502 Proteus Spectrum - HyperX Cloud Revolver S

Windows 10 Professional Build 1909

BettyBoop:

AMD Ryzen 5 2600X - Asus ROG Strix B450-I Gaming - Corsair Vengeance LPX 3000Mhz 16GB - AMD HD7950 - Fractal Design Core 500

Samsung 860 Pro 512GB Sata - EVGA 550GM 80+ Gold 550Watt SFX PSU - be quiet! Dark Rock 4

Windows 10 Professional Build 1909

TestBench:

Intel i7 6700K - Asus Maximus Hero VIII - Corsair Vengence LPX 3000MHz 16GB - MSI RX480 Gaming-X 8GB - Cooler Master 932 HAF

Seagate 250GB HDD - EVGA G2 80+ Gold 650Watt PSU - Corsair H100i

Ubuntu Linux 20.04 Beta LTS

HTPC:

HPE ProLiant ML10 Gen9 Server

Intel Xeon E3-1225v5 - Micron 2133Mhz 16GB ECC

Windows 10 Professional Build 1909

Link to post
Share on other sites
16 minutes ago, TVwazhere said:

Ah shit I only have 67 Bacon strips and 23 9mm ammo, is that enough?

Somehow you accidentally have the formula for bald eagle feathers; They are roughly 75% bacon and 25% ammo; and ofc 100% f'n murica


El Zoido: 9900k / Hydro X / z390 Aorus master / 32 gb Corsair vengeance 3000mHz LPX / RTX 2080 ti / Fractal Define R6

 

The Box: 3900x / DR4 / b450 Asrock ITX / 32 gb Corsair vengeance 3000mHz LPX / RTX 2080 ti / Meshify mini w/ Noctua 140 Blacks

Link to post
Share on other sites
22 minutes ago, Bitter said:

Yes, 90 Bald Eagle feathers. Includes shipping.

Very tempting, have to see if I have enough Loon's to cover it.


My Folding Stats

My BOINC Stats

 

 

VelosterN:

AMD Ryzen 7 3800X - Asus ROG Strix X570-E Gaming - Corsair Vengeance RGB Pro 3200Mhz 32GB - Asus ROG Strix Gaming 5700 XT OC

Cooler Master MasterCase Pro 5 - Samsung 970 Evo Plus 250GB M.2-2280 NVMe - Samsung 970 Pro 512GB M.2-2280 NVMe - Samsung 860 Pro 256 GB 2.5" SSD X2

EVGA P2 80+ Platinum 850Watt PSU - BenQ XL2730Z 27.0" 2560x1440 144 Hz - Corsair H115i

Corsair K70 LUX - Logitech G502 Proteus Spectrum - HyperX Cloud Revolver S

Windows 10 Professional Build 1909

BettyBoop:

AMD Ryzen 5 2600X - Asus ROG Strix B450-I Gaming - Corsair Vengeance LPX 3000Mhz 16GB - AMD HD7950 - Fractal Design Core 500

Samsung 860 Pro 512GB Sata - EVGA 550GM 80+ Gold 550Watt SFX PSU - be quiet! Dark Rock 4

Windows 10 Professional Build 1909

TestBench:

Intel i7 6700K - Asus Maximus Hero VIII - Corsair Vengence LPX 3000MHz 16GB - MSI RX480 Gaming-X 8GB - Cooler Master 932 HAF

Seagate 250GB HDD - EVGA G2 80+ Gold 650Watt PSU - Corsair H100i

Ubuntu Linux 20.04 Beta LTS

HTPC:

HPE ProLiant ML10 Gen9 Server

Intel Xeon E3-1225v5 - Micron 2133Mhz 16GB ECC

Windows 10 Professional Build 1909

Link to post
Share on other sites
10 hours ago, BlueSpartan said:

What IP's need to be added? I tried my local host IP and got "telnet closed/timed out" ETC.

Like Fulminatrix said, if you are running FAH client only in the same machine as the babysitter your "hosts" would look like this:

hosts = [ #quoted strings, hosts or IPs separated by comma
  'localhost',
]

if you are running FAH client  on 192.168.1.20 and the same machine as the babysitter it would look like this

hosts = [ #quoted strings, hosts or IPs separated by comma
  'localhost',
  '192.168.1.20',
]

You can use network hosts with no issues(I do) as long as the babysitter machine is able to ping them/see them when sharing files

Link to post
Share on other sites
9 minutes ago, WaldorfMan said:

Hell Yeah Brother GIF - HellYeah RockAndRoll Guitar - Discover ...

I cant see this without hearing voodoo child 


El Zoido: 9900k / Hydro X / z390 Aorus master / 32 gb Corsair vengeance 3000mHz LPX / RTX 2080 ti / Fractal Define R6

 

The Box: 3900x / DR4 / b450 Asrock ITX / 32 gb Corsair vengeance 3000mHz LPX / RTX 2080 ti / Meshify mini w/ Noctua 140 Blacks

Link to post
Share on other sites

Ahh shoot, just realized i can't qualify now bc my windows installation was screwed up for a few days and I'll be a day short of ten 😅. Oh well, more than happy to keep going and contributing to the team and humanity 👍

Link to post
Share on other sites
On 4/5/2020 at 4:35 AM, efka112 said:

yep points are lagging behind. i think even F@H stats are a bit lagging behind

F@H stat server might be getting overloaded.

Wouldn't be the first time stats lagged, but this time they have more reason for it.

 

The Overclocking stats site relies on the actual F@H stats servers for IT'S data, on an every 3'd hour stats file pull.

 

Problem MIGHT have cleared up, there was a big "bump" on everyone early this morning.

Link to post
Share on other sites
21 hours ago, danielocdh said:

babysitter python script

It will automatically scan all the slots and pause+unpause slots that are "Waiting On: WS Assignment" and have too high "Next Attempt"

Need to set host(s) and password(only if you use a password)

  Reveal hidden contents

 



################################################################################
##                                  options                                   ##
################################################################################
hosts = [ #quoted strings, hosts or IPs separated by comma
  'localhost',
  '192.168.0.123',
]
hostsPassword = '' #quoted string, if the host(s) don't use a password just leave it as: ''

restartLimit = 10 * 60 #in seconds, pause+unpause if next attempt to get WU is this or more
checkEvery = 2 * 60 #in seconds, do a check for all hosts every this seconds

tConTimeout = 15 #in seconds, connection timeout
tReadTimeout = 10 #in seconds, read timeout
testMode = False # if set to True: checkEvery=6 and restartLimit=0 but won't actually pause+unpause slots

################################################################################
##                                    code                                    ##
################################################################################
import json
import re
import telnetlib
import time
import datetime

if testMode:
    restartLimit = 0
    checkEvery = 6
countEvery = 1 #seconds, have to be a factor of checkEvery, default: 1
countEveryDec = max(0, str(countEvery)[::-1].find('.'))
countEveryDecStr = f'{{:.{countEveryDec}f}}'
def remSeconds(seconds):
    if seconds > 0:
        if (seconds * 10000) % (countEvery * 10000) == 0:
            secondsP = countEveryDecStr.format(seconds)
            pr(f'Next check in {secondsP} seconds', same=True)
        time.sleep(countEvery)
        seconds = round((seconds - countEvery) * 10000) / 10000
        remSeconds(seconds)

prLastLen = 0
prLastSame = False
def pr(t, indent=0, same=False, overPrev=False):
    global prLastLen, prLastSame
    if not overPrev and not same and prLastSame:
        prLastLen = 0
        print('')
    t = str(t)
    toPrint = ('  ' * indent) + t
    tLen = len(toPrint)
    print(toPrint + (' ' * max(0, prLastLen - tLen)), end='\r')
    prLastSame = same
    prLastLen = tLen
    if not same:
        print('')
        prLastLen = 0

def checkKeep():
    while (True):
        checkAll()
        remSeconds(checkEvery)

def checkAll():
    for host in hosts: check(host)
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    pr(f'check complete at {now}', 0, False, True)


tEnd = ['\n> '.encode('utf-8'), '\n---\n'.encode('utf-8')]
def readResult(expected, expectedResult=''):
    index = expected[0]
    readB = expected[2]
    read = readB.decode('utf-8')
    #noting
    if index < 0 or read == '': return [False, 'nothing was read']
    #expected result
    if expectedResult:
        endWith = tEnd[index].decode('utf-8')
        readStrip = read[0:-len(endWith)].strip()
        if (readStrip != expectedResult):
            return [False, f'{readB}']
    #PyON->json
    match = re.search('\nPyON (\d+) ([-_a-zA-Z\d]+)\n(.*)\n---\n', read, re.DOTALL)
    ###print('');print('');print('');print(index);print(match);print(read);print(readB);print('');
    if match:
        version = match.group(1)
        if version != '1': raise Exception('Response data version does not match')
        data = match.group(3)
        #to json
        data = re.sub('(:\s)?False', r'\1false', data)
        data = re.sub('(:\s)?True', r'\1true', data)
        data = re.sub('(:\s)?None', r'\1null', data)
        data = json.loads(data)
        return [True, data]
    #auth error
    match = re.search('\nERROR: unknown command or variable', read, re.DOTALL)
    if match:
        raise Exception('error sending command, wrong password?')
    #return read
    return [True, read]
def tnCreate(host):
    tn = telnetlib.Telnet(host, 36330, tConTimeout)
    readResult(tn.expect(tEnd, tReadTimeout))
    return tn

def sendCmd(tn, cmd, par=''):
    if cmd == 'auth':
        if hostsPassword:
            cmdStr = f'auth {hostsPassword}';
            tn.write(f'{cmdStr}\n'.encode('utf-8'))
            res = readResult(tn.expect(tEnd, tReadTimeout), 'OK')
            if not res[0]: raise Exception(f'Error with {cmd}, {res[1]}')
            return res[1]
        return True
    elif cmd == 'exit':
        cmdStr = f'{cmd}';
        tn.write(f'{cmdStr}\n'.encode('utf-8'))
        res = readResult(tn.expect(tEnd, tReadTimeout))
        if not res[0]: raise Exception(f'Error with {cmd}, {res[1]}')
        return res[1]
    elif cmd == 'slot-info' or cmd == 'queue-info':
        cmdStr = f'{cmd}';
        tn.write(f'{cmdStr}\n'.encode('utf-8'))
        res = readResult(tn.expect(tEnd, tReadTimeout))
        if not res[0]: raise Exception(f'Error with {cmd}, {res[1]}')
        return res[1]
    elif cmd == 'get-info-and-restart':
        queueData = sendCmd(tn, 'queue-info')
        slotData = sendCmd(tn, 'slot-info')
        ###
        #if type(queueData) == str: print('');print('');print('');print(queueData);print(queueData.encode('utf-8'));print('');
        #if type(slotData) == str: print('');print('');print('');print(slotData);print(slotData.encode('utf-8'));print('');
        restarted = []
        for slot in slotData:
            isStillRunning = False
            queueDl = False
            for queue in queueData:
                if queue['slot'] == slot['id']:
                    if queue['state'] == 'RUNNING': isStillRunning = True
                    if queue['state'] == 'DOWNLOAD': queueDl = queue
            if not isStillRunning and queueDl and queueDl['waitingon'] == 'WS Assignment':
                match = re.match('\s?(\d+ days?)?\s?(\d+ hours?)?\s?(\d+ mins?)?\s?([\d.]+ secs?)?', queueDl['nextattempt'])
                if match:
                    seconds = 0
                    if match.group(1): seconds += int(re.sub('[^\d.]', '', match.group(1))) * 3600 * 24
                    if match.group(2): seconds += int(re.sub('[^\d.]', '', match.group(2))) * 3600
                    if match.group(3): seconds += int(re.sub('[^\d.]', '', match.group(3))) * 60
                    if match.group(4): seconds += round(float(re.sub('[^\d.]', '', match.group(4))) * 1)
                    if seconds >= restartLimit:
                        if not testMode:
                          sendCmd(tn, 'pause', queueDl['slot'])
                          time.sleep(1)
                          sendCmd(tn, 'unpause', queueDl['slot'])
                        restarted.append([queueDl['slot'], queueDl['nextattempt']])
                else: raise Exception(f'Error with {cmd}, parsing queue nextattempt:{queueDl["nextattempt"]}')
        return restarted
    elif par and (cmd == 'pause' or cmd == 'unpause'):
        cmdStr = f'{cmd} {par}';
        tn.write(f'{cmdStr}\n'.encode('utf-8'))
        res = readResult(tn.expect(tEnd, tReadTimeout))
        if not res[0]: raise Exception(f'Error with {cmd}, {res[1]}')
        return res[1]
    else : return False

def check(host):
    st = time.time()
    pr(f'checking {host}', 1, True)
    try:
        tn = tnCreate(host)
        sendCmd(tn, 'auth')
        restarted = sendCmd(tn, 'get-info-and-restart')
        if len(restarted):
            pr(f'{host}: restarted {len(restarted)} slot{"s" if len(restarted) > 1 else ""}: ' + ', '.join(map(lambda item: '' + (' with '.join(item)), restarted)), 1, False, True)
        sendCmd(tn, 'exit')
        ed = time.time()
        time.sleep(max(0, 1 - (ed - st)))
    except Exception as err:
        pr(f'{host} error: {err}', 1, False, True)

checkKeep()

 

 

Looks like this when running:

ubu.png.dcef9a0ae7cddf57aa326276700f68ad.png

 

It access the clients API in a similar(much simpler) way that FAHControl or HFM.NET do

It won't restart slots that are still running and trying to download a new WU at the same time.

Tested on python 3 on windows (3.8.2)and ubuntu (3.6.9)

Let me know if you find any issues, it was stable for me after a few hours

 

Nice work! I'm writing a bit of code on my end too to improve visuals and pull data I want out. All in nodejs also using the socket interface.

Link to post
Share on other sites
4 minutes ago, ColdThief said:

Whelp I did all I could do. My landlords noticed a power bill increase. I contributed the best I could, but I can't finish the last 5 days. Good luck to everyone and I'm glad we are helping!

Let's crowdsource an excuse for you. Tell your landlord someone was blow-drying their hair all day long. 

Link to post
Share on other sites
2 minutes ago, Koppa315 said:

Nice work! I'm writing a bit of code on my end too to improve visuals and pull data I want out. All in nodejs also using the socket interface.

Nice, share if possible.

I would have used node too but I assumed python was able to parse PyON, which wasn't the case(would have had to use eval), I ended up doing some replacing and then parsing it as json.

Link to post
Share on other sites
11 minutes ago, ColdThief said:

Whelp I did all I could do. My landlords noticed a power bill increase. I contributed the best I could, but I can't finish the last 5 days. Good luck to everyone and I'm glad we are helping!

It's been a pleasure..

spacer.png

Link to post
Share on other sites
16 minutes ago, ColdThief said:

Whelp I did all I could do. My landlords noticed a power bill increase. I contributed the best I could, but I can't finish the last 5 days. Good luck to everyone and I'm glad we are helping!

How many rigs and what caliber of power do they have that would warrant such an increase?


Q

Link to post
Share on other sites
10 minutes ago, danielocdh said:

Nice, share if possible.

I would have used node too but I assumed python was able to parse PyON, which wasn't the case(would have had to use eval), I ended up doing some replacing and then parsing it as json.

Just started so it'll be a bit of fun to play with, first step is writing the interface as it's own lib for others to play with. Hit that annoying PyON notation too, so I'll likely just write my own interpreter. I have found another nodejs lib online but it had a dependency on a language grammer/parser.

Link to post
Share on other sites
19 minutes ago, ColdThief said:

Whelp I did all I could do. My landlords noticed a power bill increase. I contributed the best I could, but I can't finish the last 5 days. Good luck to everyone and I'm glad we are helping!

Hmm you could limit your CPU cores as many people have noted such that you only complete a couple WUs per day max... I'm not certain if CPU or GPU WUs are more complex, I was seeing CPU WUs going quickly lol

 

Yeah not the best thing to get evicted or have other landlord issues over 🤣

Link to post
Share on other sites
4 hours ago, JoeDaCabbie said:

Question for the organizers: a buddy of mine signed up for the contest but didn't realize that his F@H Username contained an underscore instead of a space until after the registration thread was locked. He's a nice guy and doesn't want to make waves so won't ask on his own behalf, but I'm an assertive jerk so I will. Can this be corrected? He won't be dethroning anyone in the rankings but it would be nice for him to be able to request badges.

@GOTSpectrum Proly missed your post, but no, there is no chance of correction now. Correction time was until end of first day or smth like that. However, there are no event-specific badges for this event, so he will be eligible for normal badges anyway. You do not need an event to earn those badges.


Favebook's F@H Stats

Favebook's BOINC Stats

 

CPU i7-8700k (5.0GHz)  Motherboard Aorus Z370 Gaming 7  RAM Vengeance® RGB Pro 16GB DDR4 3200MHz  GPU  Aorus 1080 Ti

Case Carbide Series SPEC-OMEGA  Storage  Samsung Evo 970 1TB & WD Red Pro 10TB

PSU Corsair HX850i  Cooling Custom EKWB loop

 

Display Acer Predator x34 120Hz

Link to post
Share on other sites
Guest
This topic is now closed to further replies.


×