Update worker.py to new code.

This commit is contained in:
Steven Robertson 2012-04-18 09:00:17 -07:00
parent a2b1df96f9
commit f4e59dffdc

View File

@ -9,13 +9,16 @@ import uuid
import json import json
import socket import socket
import itertools import itertools
from subprocess import check_output from collections import namedtuple
from subprocess import check_call, check_output
from cStringIO import StringIO from cStringIO import StringIO
import scipy import scipy
import redis import redis
from cuburn import render, genome sys.path.insert(0, os.path.dirname(__file__))
from cuburn import render
from cuburn.genome import convert, db, use
import pycuda.driver as cuda import pycuda.driver as cuda
@ -110,15 +113,9 @@ def work(server):
copy = False copy = False
sid, sidx, pid, gid, ftime, ftag = task[1].split(' ', 5) sid, sidx, pid, gid, ftime, ftag = task[1].split(' ', 5)
if pid != last_pid or gid != last_gid or not rdr: if pid != last_pid or gid != last_gid or not rdr:
gnm = genome.Genome(json.loads(r.get(gid))) gnm = json.loads(r.get(gid))
prof = json.loads(r.get(pid)) gprof, ignored_times = use.wrap_genome(json.loads(r.get(pid)), gnm)
gnm.set_profile(prof) rdr = render.Renderer(gnm, gprof)
rdr = render.Renderer(gnm)
# Temporarily use animation filter settings for the bilateral
# filter. TODO: specify these in profiles.
rdr.filts[0].sstd = 10.0
rdr.filts[0].dstd = 2.0
rdr.filts[0].gspeed = 2.0
last_pid, last_gid = pid, gid last_pid, last_gid = pid, gid
copy = True copy = True
@ -126,8 +123,7 @@ def work(server):
# Create a dummy event for timing # Create a dummy event for timing
last_evt = cuda.Event().record(mgr.stream_a) last_evt = cuda.Event().record(mgr.stream_a)
w, h = prof['width'], prof['height'] evt, buf = mgr.queue_frame(rdr, gnm, gprof, float(ftime), copy)
evt, buf = mgr.queue_frame(rdr, gnm, float(ftime), w, h, copy)
idx = sid, sidx, ftag idx = sid, sidx, ftag
def iter_genomes(prof, gpaths, pname='540p'): def iter_genomes(prof, gpaths, pname='540p'):
@ -135,16 +131,18 @@ def iter_genomes(prof, gpaths, pname='540p'):
Walk a list of genome paths, yielding them in an order suitable for Walk a list of genome paths, yielding them in an order suitable for
the `genomes` argument of `create_jobs()`. the `genomes` argument of `create_jobs()`.
""" """
gdb = db.connect('.')
for gpath in gpaths: for gpath in gpaths:
gname = os.path.basename(gpath).rsplit('.', 1)[0] gname = os.path.basename(gpath).rsplit('.', 1)[0]
odir = 'out/%s/%s/untracked' % (pname, gname) odir = 'out/%s/%s' % (pname, gname)
if os.path.isfile(os.path.join(odir, 'COMPLETE')): if os.path.isfile(os.path.join(odir, 'COMPLETE')):
continue continue
with open(gpath) as fp: with open(gpath) as fp:
gsrc = fp.read() gsrc = fp.read()
gnm = genome.Genome(json.loads(gsrc)) gnm = convert.edge_to_anim(gdb, json.loads(gsrc))
err, times = gnm.set_profile(prof) gsrc = json.dumps(gnm)
gprof, times = use.wrap_genome(prof, gnm)
gtimes = [] gtimes = []
for i, t in enumerate(times): for i, t in enumerate(times):
opath = os.path.join(odir, '%05d.jpg' % (i+1)) opath = os.path.join(odir, '%05d.jpg' % (i+1))
@ -155,9 +153,6 @@ def iter_genomes(prof, gpaths, pname='540p'):
os.makedirs(odir) os.makedirs(odir)
with open(os.path.join(odir, 'NFRAMES'), 'w') as fp: with open(os.path.join(odir, 'NFRAMES'), 'w') as fp:
fp.write(str(len(times)) + '\n') fp.write(str(len(times)) + '\n')
latest = odir.rsplit('/', 1)[0] + '/latest'
if not os.path.isdir(latest):
os.symlink('untracked', latest)
yield gsrc, gtimes yield gsrc, gtimes
def create_jobs(r, psrc, genomes): def create_jobs(r, psrc, genomes):