swizard (swizard) wrote,
swizard
swizard

Categories:

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

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

  • На двухъядерном линуксе у 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?
Tags: chameneos-redux, code, common lisp, java, lisp, question, results, shootout
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 18 comments