Средства распараллеливания в Java 1.7 (jsr166y...) Михаил Пономаренко, Tech Lead компании Sigma Ukraine
Содержание
- 2. немного истории до java 1.5 были wait notify synchonized в 1.5 - jsr166 java.util.concurrent Future, ThreadExecutor
- 3. немного истории в 1.6 - jsr166x BlockingDeque ConcurrentNavigableMap, NavigableMap в 1.7 - jsr166y ForkJoinPool Phaser ParallelArray
- 4. java.util.concurrent.Phaser
- 5. java.util.concurrent.Phaser void startTasks(List tasks, final int iterations) { final Phaser phaser = new Phaser() { protected
- 6. Fork Join – рекурсивная декомпозиция если задача маленькая - посчитать если большая разбить и посчитать рекурсивно
- 7. JDK7 дает возможность дробить мелко Минимум взаимодействия Fork Join – рекурсивная декомпозиция
- 8. ForkJoin задача 1 2 3 ответ 4
- 9. Детали реализации дополнительной сихронизации не требуется старые разбиения "больше“ Поэтому: У каждого потока свой дек задачь
- 10. Детали реализации готово 100 100 готово готово Готово 50 50
- 11. ForkJoinTask protected abstract boolean exec() ForkJoinTask fork() Не ждет public final V join() То же но
- 12. RecursiveAction extends ForkJoinTask protected void compute() Посчитать Поделить Вызвать invokeAll Сделать join Нужно что то сделать,
- 13. Примеры Doug Lea
- 14. Результаты Doug Lea Быстрее раз процессоров
- 15. Пример 2^28 произвольных чисел double (2 гб) ForkJoinPool pool = new ForkJoinPool(p); SinCosHuge task = new
- 16. Пример import java.util.concurrent.RecursiveTask; public class SinCosHuge extends RecursiveTask { … protected Double compute() { if (to
- 17. Мои измерения Загрузка процессора 100% температура
- 18. Мои измерения, время выполнения. потоков время
- 19. потоков Во сколько раз медленнее минус один
- 20. Мои измерения – относительно самого быстрого потоков Относительная разница в скорости. %
- 21. А если по старому? ThreadExecutorPool Result add(double) waitDone fork ThreadPoolExecutor tpe = new ThreadPoolExecutor(p, p, 10,SECONDS,
- 22. Runnable.run if (to - from double rz = 0; for (int i = from; i rz
- 23. А если по старому? потоков Во сколько раз медленнее минус один
- 24. А если по старому Относительная разница в скорости. % Ниже = лучше потоков
- 25. ParallelArray Судя по всему НЕ попадет в JDK 1.7, но исходники доступны MapReduce в пределах одной
- 26. Пример IBM ParallelArray students = new ParallelArray (fjPool, data); double bestGpa = students.withFilter(isSenior).withMapping(selectGpa).max(); public class Student
- 27. Мой пример new long[16384 * 16384/8] - 1 гб рабочей памяти, double[16384 * 16384/2] – 6гб
- 28. Результаты потоков Во сколько раз медленнее
- 30. Скачать презентацию

























![Мой пример new long[16384 * 16384/8] - 1 гб рабочей памяти, double[16384](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/476848/slide-26.jpg)

Здоровая полость рта – неотъемлемая часть здоровья организма
Презентация на тему Береги елочку
Метание малого мяча
Презентация на тему СМИ - четвертая власть
Медиапланирование в интернет
Институциональные модели капитализма
Золотовалютные резервы РФ
Фильтрующая система с двухсторонним вращением
Chair for Goldsmith's Hall London
Афоризмы в пьесе М.Горького «На дне»
Механическая работа и мощность
Изображение и обозначение резьбы
Презентация на тему Биотические факторы
Герой и время как “узловая” проблема литературы 19 в.
Прибыль предприятия, ее виды
Тренировка умножения и деления
Philosophy of Marxsism
Панамский канал. Строительство панамского канала
On-line медиатека как средство модернизации электронной библиотеки
изучаем алгоритмы
О чем думают девочки и стесняются спросить?
Презентация на тему Авангардная живопись начала XX века
Масленица (2)
XX. Оценка регулирующего воздействия Повышение эффективности применения межгосударственного механизма наказаний за нарушения пр
Акция!!! Только для клиентов ООО Мебельторг
Викторина
Александр Иванович Куприн «ЗОЛОТОЙ ПЕТУХ»
Урок ИЗО 1 класс