Параллельное программирование на Java - PullRequest
36 голосов
/ 28 июля 2010

Как мы можем сделать параллельное программирование на Java?Есть ли какие-то специальные рамки для этого?Как мы можем заставить вещи работать?

Я скажу вам, ребята, что мне нужно, подумайте, что я разработал веб-сканер, и он сканирует много данных из Интернета.Одна сканирующая система не будет работать правильно, поэтому мне нужно больше систем, работающих параллельно.Если это так, могу ли я применить параллельные вычисления?Ребята, вы можете привести пример?

Ответы [ 19 ]

1 голос
/ 31 января 2018

Параллелизм

Параллелизм означает, что приложение разбивает свои задачи на более мелкие подзадачи, которые могут обрабатываться параллельно, например, на нескольких процессорах в одно и то же время.enter image description here

1 голос
/ 22 августа 2013

Вы смотрели на это:

http://www.javacodegeeks.com/2013/02/java-7-forkjoin-framework-example.html?ModPagespeed=noscript

Fork / Join Framework?

Я тоже пытаюсь немного узнать об этом.

1 голос
/ 28 июля 2010

Прочитайте раздел о темах в руководстве по Java. http://download -llnw.oracle.com / JavaSE / учебник / Эфирные / параллелизм / procthread.html

1 голос
/ 28 июля 2010

Возможно, вы захотите проверить Hadoop. Он предназначен для выполнения заданий с произвольным количеством ящиков и берет на себя всю бухгалтерию за вас. Он вдохновлен Google MapReduce и связанными с ним инструментами, поэтому он даже исходит из веб-индексации.

0 голосов
/ 05 марта 2019

Краткий ответ с библиотекой примеров

Если вы заинтересованы в параллельной обработке с использованием Java, я рекомендую вам попробовать Hazelcast Jet .

Больше не нужно слов с моей стороны.Просто зайдите на сайт и узнайте на их примерах.Это дает вам достаточно солидный фон и представление о том, что значит обрабатывать данные паралельно.

https://jet.hazelcast.org/

0 голосов
/ 04 июня 2017

Существует библиотека под названием Habanero-Java (HJ), разработанная в Университете Райса, которая была построена с использованием лямбда-выражений и может работать на любой Java 8 JVM.

HJ-lib объединяет широкий спектр конструкций параллельного программирования (например, асинхронные задачи, фьючерсы, задачи, управляемые данными, общие сведения, барьеры, фазеры, транзакции, акторы) в единую модель программирования, которая допускает уникальные комбинации этих конструкций ( например, вложенные комбинации параллелизма задачи и актера).

Среда выполнения HJ отвечает за управление созданием, выполнением и завершением задач HJ, и включает в себя как планировщики разделения работы, так и кражи работы. Вы можете следовать руководству, чтобы настроить его на своем компьютере.

Вот простой пример HelloWorld:

import static edu.rice.hj.Module1.*;

public class HelloWorld {

public static void main(final String[] args) {

    launchHabaneroApp(() -> {

        finish(() -> {
            async(() -> System.out.println("Hello World - 1!"));
            async(() -> System.out.println("Hello World - 2!"));
            async(() -> System.out.println("Hello World - 3!"));
            async(() -> System.out.println("Hello World - 4!"));
        });

    });
}}

Каждый асинхронный метод работает параллельно с другими асинхронными методами, в то время как содержимое этих методов выполняется последовательно. Программа не продолжится, пока не завершится весь код в методе finish .

0 голосов
/ 02 января 2016

Вы можете попробовать Параллельная библиотека Java 2 .

На сайте проф. Алан Каминский написал:

Перенесемся в 2013 год, когда я начал разрабатыватьPJ2.Параллельные вычисления вышли далеко за рамки того, что было десятилетием ранее.Многоядерные параллельные компьютеры были оснащены гораздо большим количеством ядер ЦП и значительно большей основной памятью, так что вычисления, которые раньше требовали целого кластера, теперь можно выполнять на одном многоядерном узле.Новые виды аппаратных средств для параллельных вычислений стали обычным явлением, в частности ускорители графических процессоров (GPU).Сервисы облачных вычислений, такие как Amazon EC2, позволяли любому запускать параллельные программы на виртуальном суперкомпьютере с тысячами ядер.Открылись новые области применения для параллельных вычислений, в частности, анализ больших данных.Возникли новые API-интерфейсы параллельного программирования, такие как OpenCL и CUDA от NVIDIA Corporation для параллельного программирования на GPU, и каркасные структуры сокращения, такие как Apache Hadoop для вычислений больших данных.Чтобы изучить и использовать все эти тенденции, я решил, что нужна совершенно новая библиотека Parallel Java 2.

В начале 2013 года, когда PJ2 еще не был доступен (хотя более ранняя версия была), я попробовал Java Parallel Processing Framework (JPPF).JPPF была в порядке, но на первый взгляд PJ2 выглядит интересно.

0 голосов
/ 27 июня 2014

Java SE 5 и 6 представили набор пакетов в java.util.concurrent. *, Которые предоставляют мощные блоки параллелизма. проверьте это для получения дополнительной информации. http://www.oracle.com/technetwork/articles/java/fork-join-422606.html

0 голосов
/ 23 декабря 2013

вы можете использовать JCSP (http://www.cs.kent.ac.uk/projects/ofa/jcsp/), библиотека реализует принципы CSP (передача последовательных процессов) в Java, распараллеливание абстрагируется от уровня потока, и вы вместо этого имеете дело с процессами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...