All streams
Search
Write a publication
Pull to refresh
14
0
Евгений Гаврин @egavrin

User

Send message
Да, как раз для них родимых.
Примерно так:
cilk_for (int x = 0; x < 1000000; ++x) { … }
Cilk++
long fib_parallel(long n)
{
long x, y;
if (n < 2) return n;
x = cilk_spawn fib_parallel(n-1);
y = fib_parallel(n-2);
cilk_sync;
return (x+y);
}

OpenMP
long fib_parallel(long n)
{
long x, y;
if (n < 2) return n;
#pragma omp task default(none) shared(x,n)
{
x = fib_parallel(n-1);
}
y = fib_parallel(n-2);
#pragma omp taskwait
return (x+y);
}


PS И не надо спавнить оба треда — достаточно одного. Так будет быстрее.
Приведенный нет — там ключевые слова другие: _Cilk_spawn, _Cilk_sync, и _Cilk_for
В остальном все аналогично.
Если совсем Cilk, то тут: supertech.csail.mit.edu/cilk/ — в параграфе software всегда лежит последняя версия.

Плохой — потому что рекурсия.
Если рассматривать работу приведенного алгоритма в терминах абсолютного параллелизма — все ок. Треды создаются — под них всегда есть место, они живут счастливо и им не тесно.
В системе с ограниченными ресурсами все станет грустно. Огребем постоянное переключение контекстов и наше параллельное приложение будет работать в разы меделеннее последовательной реализации. Решается это ограничением уровня вложенности.

Ну и алгортим приведенный — не лучший с точки зрения подсчета — многие вычисления дублируются по много десятков раз.
Подсчет чисел Фибоначчи — далеко не лучший пример для демонстрационного параллельного приложения. Хотя в академических кругах его любят.

Cilk+ — это не новый язык, это расширение языков С/С++ с помощью компилятора. По сути, тоже самое что и openmp.
Поддержка Cilk+ есть в GCC 4.7. Или тут: software.intel.com/en-us/articles/intel-cilk-plus/
Топик из разряда холиварных. Стороны две: «Верующие» и «Не верующие». Со всеми присущими им особенностями.

Хотя правильный ответ: «Не знаю».
Отвечу фантасту — «42».
Если для поднятия настроени, то почему не в ХабраЮмор?

ЗЫ не увидел ничего кулхацкерного…
Ок :)
Да я понимаю, что вещь очень известная и простая, но многие их не знают. Очень многие.
На заметку: backtracking — поиск с возвратом/обход дерева с возвратом. Есть хороший русский термин — зачем англицизмами страдать когда это не нужно?
А почему изобрел? Автор в первых строчках рассказал о том что такое backtracking и для чего он нужен. И не говорить что это его придумка.
Под аккумулятором смотрели? В последних сериях они там.
Если наклейки нет и серийника тоже — смело в суд.
Простите, а они что — патентуют вон ту схемку из 6ти квадратиков?
Вот для того, чтобы пользователи не уходили и предоставляется подобная статистика.
Скажите еще, что она не нужна.
Upd: пакетный менеджер — это одно приложение, которому дали права рута, и он теперь может запускать приложения со своим уровнем доступа.
Один раз из под одной консоли.
Запускаем cmd из под админа, вводим пароль один раз, ставим из консольки десяток програм, и не катим бочечку на семерочку.
Теги порадовали :)
бесплатно, скачать, без регистрации

Думаю взять пяток с самой интересной историей создания. Например, появишиеся в результате поиска реальных ошибок.
Тем более, многие правила очень всеобъемлющи и могут покрывать с десяток различных случаев. Не только указанные в примерах.
Кстати, я правильно понимаю, что PVS частично основана на OpenC++?

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Date of birth
Registered
Activity