- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
using System;
class ololo
{
static void Main()
{
int ru, en;
for (ru = 7700; ru < 8025; ru += 25)
for (en = 3220; en < 4050; en += 50)
Console.WriteLine("Ру " + ru + " и En " + en);
}
}
Fike 08.01.2015 17:27 # +3
што?
myaut 08.01.2015 17:43 # +4
guest 09.01.2015 01:38 # +4
Fike 09.01.2015 03:25 # +5
hack2root 09.01.2015 19:16 # 0
bormand 09.01.2015 19:18 # +4
guest 09.01.2015 22:47 # 0
guest 09.01.2015 23:46 # 0
Abbath 11.01.2015 23:50 # 0
guest 13.01.2015 13:59 # +1
cyperh 16.01.2015 16:26 # 0
Анонимус 16.01.2015 22:23 # +1
Впринципе, можно взять ерланг и сделать акторов которые считают подобные задачи
А еще можно считать на GPU, но только если задачи одинаковые (единое действие для набора данных)
bormand 16.01.2015 22:28 # 0
Маловато будет. У той же куды блоки минимум 16 тредов.
Анонимус 16.01.2015 22:29 # 0
На самом деле можно еще купить у хацкеров ботнет, и получить такой вот кластерок на пару тысяч машин юных дрочеров и юзать их ресурсы
bormand 16.01.2015 22:32 # 0
P.S. Моя не сможет, у нее, к сожалению, всего 960 ядер.
LispGovno 16.01.2015 23:24 # +3
bormand 16.01.2015 23:49 # 0
roman-kashitsyn 16.01.2015 23:58 # 0
http://hackage.haskell.org/package/accelerate
bormand 17.01.2015 00:16 # 0
Хотя там, вроде как, именно array надо...
bormand 17.01.2015 00:26 # 0
Просто в той же куде можно было по индексам блока и треда нагенерить этих чисел параллельно.
roman-kashitsyn 17.01.2015 08:35 # +1
bormand 17.01.2015 11:51 # 0
LispGovno 17.01.2015 12:07 # 0
bormand 17.01.2015 12:15 # 0
Почему не запустилось? УМВР. Я даже результат с сишной прогой сверил.
> вдруг на идеоне кудкуда есть
Маловероятно.
roman-kashitsyn 17.01.2015 21:15 # 0
roman-kashitsyn 19.01.2015 18:05 # +1
bormand 19.01.2015 20:52 # 0
laMer007 21.01.2015 14:02 # 0
bormand 21.01.2015 14:04 # +1
Ну accelerate более-менее декларативный, а thrust и boost::compute - просто альтернативная версия алгоритмов stl, которая может юзать видюху.
laMer007 21.01.2015 14:05 # 0
roman-kashitsyn 21.01.2015 14:08 # +2
laMer007 21.01.2015 14:10 # 0
laMer007 21.01.2015 14:09 # 0
boost::compute::function<int (int)> add_four =
bormand 21.01.2015 14:16 # +1
laMer007 21.01.2015 14:17 # +1
bormand 21.01.2015 14:24 # 0
Скорее всего сортирует небольшими блоками каким-нибудь простым алгоритмом, а потом mergesort.
bormand 21.01.2015 14:29 # +1
laMer007 21.01.2015 18:20 # +1
Это GpuParallel, то есть ЖопаПараллель.
LispGovno 21.01.2015 21:15 # 0
LispGovno 21.01.2015 21:43 # +1
Новый диспетчер задач в таких сценариях поступает более изощренно – у каждого потока есть своя локальная очередь и каждая дочерняя задача помещается в эту локальную очередь, а не в общую. Таким образом, нагрузка на общую очередь существенно снижается. При этом выборка из локальной очереди производится по принципу LIFO – в этом случае выше вероятность, что данные необходимые для задачи, забираемой из очереди на выполнение, все еще достаточно "горячи", чтобы не вылететь из кэша.
Потенциально здесь кроется проблема, связанная с тем, что локальные очереди с очень большой вероятностью будут разными по размеру, и, пока один поток разгребает свою очередь, другой может простаивать без дела. Чтобы этого избежать, алгоритм поиска новой задачи для потока выглядит так – сначала просматривается локальная очередь потока, если там пусто, то просматривается глобальная очередь. Если пусто и там, просматриваются локальные очереди соседних потоков (механизм, что характерно, называется work stealing). При этом доступ к локальным очередям соседей уже опять происходит по принципу FIFO, чтобы не мешаться со своей помощью...
3.14159265 21.01.2015 22:07 # 0
http://govnokod.ru/13909#comment198947
На IO они не очень. Только на вычислительных задачах с предсказуемым временем окончания и низкой латенси.
3.14159265 21.01.2015 22:11 # +2
Когда-то постил новость что интел у себя баг нашли и тоже на время залочили TSX.
Видимо не такая это простая в реализации штука.
LispGovno 21.01.2015 22:37 # 0