Pull to refresh
0
@WelcomeToread⁠-⁠only

User

Send message

Как мы провели пару дней, работая над ускорением Perl

Reading time5 min
Views11K
Это история о значительной оптимизации интерпретатора Perl, о борьбе со сложностями кода, и о том, как мы хотели «съесть торт так, чтобы он у нас остался» [английская поговорка «You can't have your cake and eat it», означающая невозможность достижения двух противоположных целей].

На недавнем хакатоне Booking.com у нас появилась возможность поработать над ускорением функции размещения целых чисел в интерпретаторе Perl. В случае успеха это поможет ускорить практически все программы, которые работают в нашем проекте. Оказалось, что банальная реализация идеи могла бы сработать, но это привело бы к увеличению сложности поддержки кода. Наше исследование привело нас к тому, чтобы заставить препроцессор С улучшать качество кода, одновременно давая возможность ускорить выполнение программ.

Предыстория


В perlguts и PerlGuts Illustrated написано, что представление переменных в Perl обычно состоит из двух частей – заголовка и тела (представляемых как struct). Заголовок содержит необходимые для обработки переменных данные, которые не зависят от её типа, включая указатель на возможное тело.

image

Структура тела может сильно отличаться, в зависимости от типа переменной. Простейшая переменная — SvNULL, которая представляет undef и которой не требуется тело.

У строки (PV — “pointer value”) тело имеет тип XPV:

image

Структура тела PV отличается от тела PVNV. PVNV может содержать число с плавающей точкой и строковое представление того же значения.

image

Преимущество такого дизайна в том, что все ссылки на переменную ведут на заголовок. Perl свободно может изменять то место, где хранится тело, и для этого не требуется обновлять все остальные указатели.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments5

RuSSIR 2014: VIII летняя школа по информационному поиску

Reading time3 min
Views3.5K
18–22 августа 2014 года в Нижнем Новгороде пройдет VIII Российская летняя школа по информационному поиску «RuSSIR 2014». До этого школа проходила в Екатеринбурге, Таганроге, Петрозаводске, Воронеже, Санкт-Петербурге, Ярославле и  Казани.

В этом году её организуют Национальный исследовательский университет «Высшая школа экономики» и Российский семинар по Оценке Методов Информационного Поиска «РОМИП» при участии Яндекса, Mail.ru, Google, ABBYY и Лекториума.

Главной темой школы будет визуализация данных в задачах информационного поиска. Рабочий язык — английский.



Программа школы включает шесть основных курсов, пленарный курс и доклады спонсоров, а также конференцию молодых ученых «RuSSIR Young Scientist Conference».

Основные курсы:
  • Katja Hofmann (Microsoft Research) — Online Experimentation for Information Retrieval;
  • Alfred Inselberg (Tel Aviv University) — Visualization & Data Mining for High Dimensional Data;
  • Dmitry I. Ignatov (Higher School of Economics) — Introduction to Formal Concept Analysis and Its Applications in Information Retrieval and Related Fields;
  • Preslav Nakov (Qatar Computing Research Institute) — Web as a Corpus: Going Beyond the n-gram;
  • Sujatha Das G., Cornelia Caragea, Xiaoli Li, C. Lee Giles — Document Analysis and Retrieval in Scientific Digital Libraries;
  • Paolo Rosso (Universitat Politecnica de Valencia) — Author Profiling and Plagiarism Detection.

К участию в школе приглашаются студенты, аспиранты, исследователи и разработчики. Всего планируется принять до 120 слушателей. Участие бесплатное; для тех, кто в этом нуждается, организаторы предоставляют гранты на проживание (количество ограничено).
Как попасть?
Total votes 23: ↑20 and ↓3+17
Comments0

Программа курса «Multicore programming in Java»

Reading time3 min
Views53K
Добрый день.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией. Мы занимаемся онлайн курсами программирования.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Хотелось бы услышать мнение сообщества по поводу
  1. программы курса «Multicore programming in Java»
  2. литературы к курсу

Кратко о курсе: стартует 28 апреля (в связи с майскими праздниками старт перенесен на 15 мая), ведется в режиме вебинаров дважды в неделю в 19.00-22.00, состоит из 16 лекций по 2.5 часа (=40 лекционных часов), к каждой лекции дается расширенное задание, рассчитан на Java Junior/Middle.
Читать дальше →
Total votes 37: ↑28 and ↓9+19
Comments45

Information

Rating
Does not participate
Registered
Activity