def compute_best_mix(bin, lms, tmpdir, out):
  files = [os.path.join(tmpdir, lm[0] + '.ppl') for lm in lms]
  cmd = [bin] + files
  print >>logs, 'Executing {0} > {1}'.format(' '.join(cmd), out)
  return helper.redirect(cmd, out)
def _calc_perplexity(cmd_str):
  print >>logs, multiprocessing.current_process().name, 'executing: {0}'.format(cmd_str)
  cmds = shlex.split(cmd_str)
  cmd = cmds[:-1]
  out_file = cmds[-1]
  return helper.redirect(cmd, out_file)