Как записать приложения.NET, которые используют многоядерные процессоры

Шаблоны используются для описания формы данных, которые вы ищете. Форма является представлением шаблона (графика).

Узлы представлены с помощью кружков, а отношения представлены с помощью стрелок между ними.

В следующем запросе

MATCH (user)
RETURN user
LIMIT 1
  • Шаблон (user)

  • Форма для этого же: [ 116] enter image description here

И для следующего запроса:

MATCH (me)-[:KNOWS]->(friend)
WHERE me.name = 'Filipa'
RETURN friend.name
  • Шаблон (me)-[:KNOWS]->(friend)
  • Форма для того же:

enter image description here

7
задан Josh Stodola 3 March 2009 в 19:29
поделиться

8 ответов

Многоядерное программирование является чрезвычайно многопоточным программированием. Пока Ваше приложение является многопоточным, операционная система определит который ядро работать который поток на.

Таким образом Ваш реальный вопрос должен быть, какие приложения извлекли бы выгоду из того, чтобы быть многопоточным? Думайте о таком приложении, затем инстанцируйте нескольких потоков для решения равных частей проблемы.

13
ответ дан 6 December 2019 в 08:17
поделиться

Лучший способ запуститься состоит в том, чтобы захватить последний CTP параллельной платформы расширений и начать пахать через их пример кода.

3
ответ дан 6 December 2019 в 08:17
поделиться

Читайте на модели асинхронного программирования, которую использует.NET. Изучите парадигму BeginXXX и EnxXXX, которая позволяет делегатам выполняться в пуле потоков.

Потоковые классы у всех есть BeingXXX, методы EndXXX (например, BeginRead, EndRead), которые позволяют Вам делать асинхронный IO. Если Вы будете работать над чем-то, что в большой степени основывал IO, то Вы захотите использовать эти методы для увеличения параллелизма.

2
ответ дан 6 December 2019 в 08:17
поделиться

Я не рекомендую книги очень часто больше, но Параллельное Программирование Joe Duffy в Windows просто незаменимо.

2
ответ дан 6 December 2019 в 08:17
поделиться

Ищите информацию о .net 4.0. Это будет добавлять различные конструкции для него.

1
ответ дан 6 December 2019 в 08:17
поделиться

Это могло бы сделать хорошее стартовое место.

0
ответ дан 6 December 2019 в 08:17
поделиться

Как JaredPar сказал, что Параллельные Расширения довольно хороши. Я играл с ними немного, и они просты в использовании и добавляют производительность.

Конструкции мне понравилось много, были Параллельны. ForEach () и PLinq.

Параллель. ForEach подобен ForEach (делегат) функция, которую Вы имеете в наборах DotNet 2.0. Это берет делегата действия и выполняет его параллельно.

Plinq позволяет Вам выполнять любой нормальный запрос Linq параллельным способом путем добавления.AsParallel () в конец запроса.

Проверьте ссылки Jared, отправленный для большего количества информации.

1
ответ дан 6 December 2019 в 08:17
поделиться

Просто разделяя Ваш проект на различные потоки, специализированные, чтобы сделать, конкретная функция позволит Вам использовать в своих интересах несколько ядер. Дескрипторы ОС, планируя различные потоки к самому доступному ядру процессора.

0
ответ дан 6 December 2019 в 08:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: