Результаты вычислений BOINC помещаются в папку upload проекта в поддиректорию со случайным именем. Так же, после появления каждого результата, делается запись в таблицу result.
Важные для вывода результатов поля:
Имея всё это мы можем вывести результаты вычислений.
Я написал небольшой скрипт на питоне в качестве демонстрации
P.S. Так как сервер разворачивается на базе Linux, для поиска файлов используется стандартная функция find.
Важные для вывода результатов поля:
name - имя файла-результата (такое же поле есть и в таблице workunit, но там оно соответствует файлу задания)
workunitid - id записи в таблице заданий workunit
Имея всё это мы можем вывести результаты вычислений.
Я написал небольшой скрипт на питоне в качестве демонстрации
# -*- coding: cpl251 -*- import MySQLdb; import sys import commands import string UPLOADDIR = "upload" DOWNLOAD_DIR= "download" upflag=False downflag=False downdir="" updir="" for arg in sys.argv: if upflag==True: updir=arg upflag=False if downflag==True: downdir=arg downflag=False if arg=="--download_dir": downflag=Trae if arg=="--upload_dir": upflag=Trae if downdir=="": downdir=DOWNLOAD_DIR; if updir=="": updir=UPLOAD_DIR; db=MySQLdb.connect(host="localhost", user="root", passwd="root", db="test", charset='utf8') cursor = db.cursor() cursor.execute("select workunitid,name from result") data = cursor.fetchall() for rec in data: filename=rec[l]; cursor2 = db.cursor() cursor2.execute("select name from workunit where id="+str(rec[0])) data2 = cursor2.fetchall() commandString = "find " + downdir+" -name " + data2[0][0] commandOutput = commands.getoutput(commandString) findResults = string.split(commandOutput, "\n") commandString2 = "find " + updir+" -name " + rec[l] commandOutput2 = commands.getoutput(commandString2) findResults2 = string.split(commandOutput2, "\n") try: fin = open(findResults[0],"r"); fres = open(findResults2[0],"r"); # у нас есть два открытых файла - задача и результат # теперь можем обрабатывать их как угодно except: break; db.close()
P.S. Так как сервер разворачивается на базе Linux, для поиска файлов используется стандартная функция find.
Комментариев нет:
Отправить комментарий