Хамелеончеги: возвращение

Sep 29, 2010 16:25

Итого, погнали по следам предыдущего поста.

  • На двухъядерном линуксе у dmitry_vk моя лисповая реализация оказалась быстрее жабьей почти на 40% ( пруф)
  • У меня на ноуте (Core Duo T6600) бенчмарк отработал еще быстрее: 2.956s (напомню: на десктопе Core Quad Q6600, результат 7.4s)
  • Задачу зааппрувили на shootout, она ожидаемо неплохо выступила на x86 Core Quad и x64 Core Quad (восьмое и девятое место соответственно), но омерзительно адски слила всем на одном ядре, включая даже петон.

Выводы следующие. Как правильно было замечено здесь, Core Quad является специфическим процессором: это скорее двухпроцессорный Core Duo, чем четырехъядерный cpu. Отсюда несравненно лучшие результаты бенча на Core Duo.

Если б у меня была возможность четко приклеить нити к физическим ядрам, я бы получил суровый выигрыш, запуская первую игру на одном "процессоре", а вторую на "втором". Отсюда вопрос первый: правильно ли я понимаю, что в SBCL управлять affinity я не могу никак?

Вывод второй: запускаясь на однопроцессорной машине мне надо, во-первых, обнаружить это (вопрос: как?), а во-вторых, убрать пустой спин из ожидания, крутясь на thread-yield. Есть ли какой-нибудь универсальный способ определить однопроцессорность рантайма, помимо распарсивания /proc/cpuinfo в луниксе и sysctl в bsd?

chameneos-redux, code, java, question, results, shootout, common lisp, lisp

Previous post Next post
Up