Автор: Иван Богданов, Технический писатель
Рубрика «параллельные вычисления»
Индия хотела купить суперкомпьютер. Ей отказали. Она собрала свой
2026-05-13 в 10:04, admin, рубрики: C-DAC, hostkey, PARAM, ВИДЖАЙ БХАТКАР, Индия, кристальные вычисления, параллельные вычисления, санкции, суперкомпьютерGPU Compute Engine для 1С: как перестать ждать часами и начать считать на видеокарте
2026-05-12 в 6:30, admin, рубрики: 1С, GPU Compute Engine, mrp, авансы, вычислительные шейдеры, монте-карло, параллельные вычисления, себестоимостьМеня зовут Андрей, я разрабатываю решения на стыке 1С и параллельных вычислений. Это статья о том, как и почему массовые расчёты в 1С нужно переносить на GPU. Не в облако, не на кластер серверов, а на обычную видеокарту в рабочем ПК. С конкретными цифрами, фрагментами кода шейдеров и результатами, которые можно проверить самостоятельно.
Введение. Точка кипения, или почему ждать — это неправильно
Параллелизм с общим состоянием в Rust
2026-04-02 в 15:15, admin, рубрики: backend, backend-программирование, Rust, Параллелизм, параллельное программирование, параллельные вычисленияПривет! Сегодня я бы хотел обратить ваше внимание на важную тему работы с общим состоянием при параллельном выполнении кода на Rust. В этой статье я не буду распыляться на базовые определения параллельности, потоков, так как если вы уже оказались здесь, значит у вас есть хотя бы примерное понимание этого.
Почему нет?
Прежде чем раскрыть саму тему статьи, необходимо указать явные причины, почему не рекомендуется использовать одну и ту же область памяти между потоками:
Два потока, одно ядро: как устроена одновременная многопоточность
2024-08-19 в 13:00, admin, рубрики: cpu, hyperthreading, intel, ruvds_перевод, smt, многопоточность, параллельные вычисления, процессоры intel
Одновременная многопоточность (Simultaneous multithreading, SMT) — это функция, позволяющая процессору одновременно обрабатывать команды из двух разных потоков. Но задавались ли вы когда-нибудь вопросом, как это работает? Как процессор отслеживает два потока и распределяет ресурсы между ними?
В статье я объясню, как устроена эта функция. Понимание внутреннего устройства SMT поможет вам решить, подходит ли она для ваших продакшен-серверов. Иногда SMT способна резко повысить производительность системы, но в некоторых случаях она приводит к замедлению. Знание подробностей позволит вам сделать правильный выбор.
Примечание: основная часть изложенного в статье относится к реализации SMT компании Intel, также называемой гипертредингом (hyper-threading). Она основана на научной статье компании, опубликованной в 2002 году.
Как правильно тестировать конкурентные структуры данных
2024-07-10 в 13:00, admin, рубрики: concurrency, ruvds_переводы, конкурентность, Параллелизм, параллельные вычисления, структуры данных, тестирование
Есть потрясающая библиотека Rust под названием loom, которую можно использовать для тщательного тестирования неблокируемых (lock-free) структур данных. Я давно хотел разобраться, как она работает. И сейчас хочу! Но недавно я случайно реализовал небольшой эксперимент, который, как мне кажется, содержит часть идей
loom, поэтому о нём стоит написать. Моя цель — не научить вас тому, что нужно использовать на практике (если вы хотите этого, то почитайте документацию loom), а, скорее, вывести пару идей из фундаментальных принципов.Читать полностью »Как одной строкой сделать 24-ядерный сервер медленнее ноутбука
2022-02-01 в 10:39, admin, рубрики: cassandra, Rust, базы данных, бенчмаркинг, Блог компании М.Видео-Эльдорадо, Клиентская оптимизация, мвидео, оптимизация программ, Параллелизм, параллельные вычисления, Серверная оптимизация, Эльдорадо
Лучше учиться на чужих ошибках, поэтому мы в М.Видео-Эльдорадо стремимся изучать зарубежный опыт. Предлагаем и вам посмотреть перевод статьи Петра Колачковского, получившего черный пояс по прокачке производительности своего железа.Читать полностью »
«Невозможный» параллельный алгоритм неотрицательной суммы
2022-01-02 в 7:02, admin, рубрики: forkjoin, haskell, java, java streams, MapReduce, sql, sum, ассоциативность, магия, моноид, параллельное программирование, параллельные вычисления, ПрограммированиеСумма целых чисел — что может быть проще? Сумма есть в SQL, в Java Stream API… в крайнем случае напишем сами. Как и всякая абстракция, она расходится с реальностью.
Вот счёт клиента в банке, по нему движения — положительные пополнения и отрицательные списания — в сумме дают текущий баланс. Так сумма работает в идеальном мире. А в реальности при большом минусе банк с отсрочкой, но предпримет нетривиальные действия вплоть до обращения в суд, чтобы закрыть финансовую брешь.
static long usualSum(LongStream changes) {
return changes.reduce(0, (a, b) -> a + b);
}
Фантастические advisory locks, и где они обитают
2020-02-13 в 11:20, admin, рубрики: advisory lock, dba, postgresql, sql, Администрирование баз данных, Алгоритмы, базы данных, Блог компании Тензор, параллельные вычисленияВ PostgreSQL существует очень удобный механизм рекомендательных блокировок, они же — advisory locks. Мы в «Тензоре» используем их во многих местах системы, но мало кто детально понимает, как конкретно они работают, и какие проблемы можно получить при неправильном обращении.
О структуре параллельных вычислений или доводы против оператора «Go»
2019-12-10 в 14:59, admin, рубрики: async, Go, golang, python, Анализ и проектирование систем, асинхронное программирование, дейкстра, конкурентное программирование, параллельное программирование, параллельные вычисления, потоки, смена парадигмы
Каждый язык, поддерживающий параллельные (конкурентные, асинхронные) вычисления, нуждается в способе запуска кода параллельно. Вот примеры из разных API:
go myfunc(); // Golang
pthread_create(&thread_id, NULL, &myfunc); /* C with POSIX threads */
spawn(modulename, myfuncname, []) % Erlang
threading.Thread(target=myfunc).start() # Python with threads
asyncio.create_task(myfunc()) # Python with asyncio
Есть много вариантов нотации и терминологии, но одна семантика — запустить myfunc параллельно основной программе и продолжить родительский поток выполнения (англ. "Control Flow")


