🗊Средства распараллеливания в Java 1.7 (jsr166y...) Михаил Пономаренко, Tech Lead компании Sigma Ukraine

Категория: Образование
Нажмите для полного просмотра!
Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №1Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №2Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №3Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №4Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №5Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №6Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №7Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №8Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №9Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №10Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №11Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №12Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №13Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №14Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №15Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №16Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №17Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №18Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №19Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №20Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №21Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №22Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №23Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №24Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №25Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №26Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №27Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №28Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №29

Вы можете ознакомиться и скачать Средства распараллеливания в Java 1.7 (jsr166y...) Михаил Пономаренко, Tech Lead компании Sigma Ukraine. Презентация содержит 29 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Средства распараллеливания в Java 1.7 (jsr166y...)
Михаил Пономаренко,
Tech Lead компании Sigma Ukraine
Описание слайда:
Средства распараллеливания в Java 1.7 (jsr166y...) Михаил Пономаренко, Tech Lead компании Sigma Ukraine

Слайд 2





немного истории
до java 1.5 были
wait
notify
synchonized
в 1.5 - jsr166
java.util.concurrent
Future, ThreadExecutor
ConcurrentMap - асинхронные итераторы
Описание слайда:
немного истории до java 1.5 были wait notify synchonized в 1.5 - jsr166 java.util.concurrent Future, ThreadExecutor ConcurrentMap - асинхронные итераторы

Слайд 3





немного истории
в 1.6 - jsr166x
 BlockingDeque
ConcurrentNavigableMap, NavigableMap
в 1.7 - jsr166y
ForkJoinPool
Phaser
ParallelArray (jsr166y extra)
Описание слайда:
немного истории в 1.6 - jsr166x  BlockingDeque ConcurrentNavigableMap, NavigableMap в 1.7 - jsr166y ForkJoinPool Phaser ParallelArray (jsr166y extra)

Слайд 4





java.util.concurrent.Phaser
Описание слайда:
java.util.concurrent.Phaser

Слайд 5





java.util.concurrent.Phaser
Описание слайда:
java.util.concurrent.Phaser

Слайд 6





Fork Join – рекурсивная декомпозиция   

если задача маленькая - посчитать
если большая разбить и посчитать рекурсивно
Описание слайда:
Fork Join – рекурсивная декомпозиция    если задача маленькая - посчитать если большая разбить и посчитать рекурсивно

Слайд 7





Fork Join – рекурсивная декомпозиция   

JDK7 дает возможность дробить мелко
Минимум взаимодействия
Описание слайда:
Fork Join – рекурсивная декомпозиция    JDK7 дает возможность дробить мелко Минимум взаимодействия

Слайд 8





ForkJoin
Описание слайда:
ForkJoin

Слайд 9





Детали реализации
дополнительной сихронизации не требуется
старые разбиения "больше“
Поэтому: 
У каждого потока свой дек задачь
поток выполнения берет задачу из дека
задача добавляет подзадачи в дэк или производит вычисления
если задачи кончилисть - "украсть" задачу у другого потока
Описание слайда:
Детали реализации дополнительной сихронизации не требуется старые разбиения "больше“ Поэтому:  У каждого потока свой дек задачь поток выполнения берет задачу из дека задача добавляет подзадачи в дэк или производит вычисления если задачи кончилисть - "украсть" задачу у другого потока

Слайд 10





Детали реализации
Описание слайда:
Детали реализации

Слайд 11





ForkJoinTask<V>
protected abstract  boolean	exec()
 ForkJoinTask<V>	fork()
Не ждет
public final V join()
То же но без исключений
public static void invokeAll(ForkJoinTask<?>... tasks))
Invoke = fork(); join();
Описание слайда:
ForkJoinTask<V> protected abstract boolean exec() ForkJoinTask<V> fork() Не ждет public final V join() То же но без исключений public static void invokeAll(ForkJoinTask<?>... tasks)) Invoke = fork(); join();

Слайд 12





RecursiveAction
extends ForkJoinTask<Void>
protected void compute()
Посчитать
Поделить
Вызвать invokeAll
Сделать join
Нужно что то сделать, но нет возвращаемого значения
RecursiveTask – есть возаращаемое значение – его вернет join
Описание слайда:
RecursiveAction extends ForkJoinTask<Void> protected void compute() Посчитать Поделить Вызвать invokeAll Сделать join Нужно что то сделать, но нет возвращаемого значения RecursiveTask – есть возаращаемое значение – его вернет join

Слайд 13





Примеры Doug Lea
Описание слайда:
Примеры Doug Lea

Слайд 14





Результаты Doug Lea
Описание слайда:
Результаты Doug Lea

Слайд 15





Пример
2^28 произвольных чисел double  (2 гб)
Описание слайда:
Пример 2^28 произвольных чисел double (2 гб)

Слайд 16





Пример
Описание слайда:
Пример

Слайд 17





Мои измерения
Описание слайда:
Мои измерения

Слайд 18





Мои измерения, время выполнения.
Описание слайда:
Мои измерения, время выполнения.

Слайд 19


Средства распараллеливания в Java 1.7 (jsr166y...)  Михаил Пономаренко,  Tech Lead компании Sigma Ukraine, слайд №19
Описание слайда:

Слайд 20





Мои измерения – относительно самого быстрого
Описание слайда:
Мои измерения – относительно самого быстрого

Слайд 21





А если по старому?
ThreadExecutorPool
Result
add(double)
waitDone
fork
Описание слайда:
А если по старому? ThreadExecutorPool Result add(double) waitDone fork

Слайд 22





Runnable.run
Описание слайда:
Runnable.run

Слайд 23





А если по старому?
Описание слайда:
А если по старому?

Слайд 24





А если по старому
Описание слайда:
А если по старому

Слайд 25





ParallelArray
Судя по всему НЕ попадет в JDK 1.7, но исходники доступны
MapReduce в пределах одной машины
Описание слайда:
ParallelArray Судя по всему НЕ попадет в JDK 1.7, но исходники доступны MapReduce в пределах одной машины

Слайд 26





Пример IBM
Описание слайда:
Пример IBM

Слайд 27





Мой пример
new long[16384 * 16384/8]  - 1 гб рабочей памяти,
double[16384 * 16384/2] – 6гб рабочей
Описание слайда:
Мой пример new long[16384 * 16384/8] - 1 гб рабочей памяти, double[16384 * 16384/2] – 6гб рабочей

Слайд 28





Результаты
Описание слайда:
Результаты

Слайд 29





Откуда начать
Concurrency JSR-166 Interest Site: http://g.oswego.edu/dl/concurrency-interest/
Описание слайда:
Откуда начать Concurrency JSR-166 Interest Site: http://g.oswego.edu/dl/concurrency-interest/



Похожие презентации
Mypresentation.ru
Загрузить презентацию