Полтора месяца моя рабочая машина умирала. Не BSOD, не перезагрузка — именно умирала: экран чёрный, вентиляторы на видеокарте выходят на сто процентов и так и остаются. Никакой реакции ни на что. Только кнопка Reset.Сначала раз в неделю. Потом два.…
Одним томным вечером наши разработчики собрались в баре на тимбилдинг и подняли хрестоматийные вопросы: почему нельзя делить на ноль и почему ноль в степени ноль зачастую принимается за единицу. О том, что делить на ноль нельзя, всем известно ещё со школы. На деле это не просто правило, а фундаментальный запрет. Пример простой: Представим, что у нас есть кастрюля компота объемом 10 литров (10 000 мл): Читать далее
В предыдущей статье было показано, что при решении СЛАУ с симметричной разреженной матрицей наличие лидирующих нулей приводит к уменьшению количества вычислений. В этой статье будет представлен алгоритм, предназначенный для увеличения количества лидирующих нулей данной…
«П‑с-с‑с, хочешь, чтобы функция очистки массива была на 49% быстрее? Сдвинь массив на 4 байта».Рассмотрим следующий код на Go:const words = 1 << 19type block struct { n uint32 data [words]uint32}func (b *block) reset() { b.data = [words]uint32{}}Что, если я скажу вам, что всего лишь добавив 4 байта заполнения (padding) между n и data, вы ускорите функцию reset на 49% (по крайней мере, на машинах с Intel)? Звучит безумно? Читать далее