Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
29 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
785.00 kB
Просмотров:
68
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд
Содержание слайда: Средства распараллеливания в Java 1.7 (jsr166y...)
Михаил Пономаренко,
Tech Lead компании Sigma Ukraine
№2 слайд
Содержание слайда: немного истории
до 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)
№4 слайд
Содержание слайда: java.util.concurrent.Phaser
№5 слайд
Содержание слайда: java.util.concurrent.Phaser
№6 слайд
Содержание слайда: Fork Join – рекурсивная декомпозиция
если задача маленькая - посчитать
если большая разбить и посчитать рекурсивно
№7 слайд
Содержание слайда: Fork Join – рекурсивная декомпозиция
JDK7 дает возможность дробить мелко
Минимум взаимодействия
№8 слайд
Содержание слайда: 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();
№12 слайд
Содержание слайда: RecursiveAction
extends ForkJoinTask<Void>
protected void compute()
Посчитать
Поделить
Вызвать invokeAll
Сделать join
Нужно что то сделать, но нет возвращаемого значения
RecursiveTask – есть возаращаемое значение – его вернет join
№13 слайд
Содержание слайда: Примеры Doug Lea
№14 слайд
Содержание слайда: Результаты Doug Lea
№15 слайд
Содержание слайда: Пример
2^28 произвольных чисел double (2 гб)
№16 слайд
Содержание слайда: Пример
№17 слайд
Содержание слайда: Мои измерения
№18 слайд
Содержание слайда: Мои измерения, время выполнения.
№19 слайд
№20 слайд
Содержание слайда: Мои измерения – относительно самого быстрого
№21 слайд
Содержание слайда: А если по старому?
ThreadExecutorPool
Result
add(double)
waitDone
fork
№22 слайд
Содержание слайда: Runnable.run
№23 слайд
Содержание слайда: А если по старому?
№24 слайд
Содержание слайда: А если по старому
№25 слайд
Содержание слайда: ParallelArray
Судя по всему НЕ попадет в JDK 1.7, но исходники доступны
MapReduce в пределах одной машины
№26 слайд
Содержание слайда: Пример IBM
№27 слайд
Содержание слайда: Мой пример
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/