RU2016151387A - Параллельная сортировка слиянием - Google Patents
Параллельная сортировка слиянием Download PDFInfo
- Publication number
- RU2016151387A RU2016151387A RU2016151387A RU2016151387A RU2016151387A RU 2016151387 A RU2016151387 A RU 2016151387A RU 2016151387 A RU2016151387 A RU 2016151387A RU 2016151387 A RU2016151387 A RU 2016151387A RU 2016151387 A RU2016151387 A RU 2016151387A
- Authority
- RU
- Russia
- Prior art keywords
- data processing
- range
- sorted
- processes
- local memory
- Prior art date
Links
- 230000004927 fusion Effects 0.000 title 1
- 238000000034 method Methods 0.000 claims 33
- 238000004590 computer program Methods 0.000 claims 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/32—Merging, i.e. combining data contained in ordered sequence on at least two record carriers to produce a single carrier or set of carriers having all the original data in the ordered sequence merging methods in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/36—Combined merging and sorting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Claims (32)
1. Способ (1100) сортировки для сортировки входных данных, распределенных по сегментам (401, 402, 403, 404) локальной памяти множества соединенных между собой узлов (701, 702) обработки данных, содержащий этапы, на которых:
сортируют (1101) распределенные входные данные, локально по узлу (701, 702) обработки данных, посредством развертывания первых процессов на узлах (701, 702) обработки данных для создания множества сортированных списков в сегментах (401, 402, 403, 404) локальной памяти узлов (701, 702) обработки данных;
создают (1102) последовательность диапазонных блоков (703, 704, 713, 714) в сегментах локальной памяти узлов (701, 702) обработки данных, при этом каждый диапазонный блок выполнен с возможностью хранения значений данных, находящихся в пределах его диапазона;
копируют (1103) указанное множество сортированных списков в указанную последовательность диапазонных блоков (703, 704, 713, 714) посредством развертывания вторых процессов на узлах (701, 702) обработки данных, при этом каждый диапазонный блок (703, 704, 713, 714) принимает те элементы сортированных списков, значения которых находятся в пределах его диапазона;
сортируют (1104) элементы диапазонных блоков (703, 704, 713, 714), локально по узлу (701, 702) обработки данных, с использованием вторых процессов для создания сортированных элементов в диапазонных блоках (703, 704, 713, 714); и
считывают (1105) сортированные элементы из последовательности диапазонных блоков (703, 704, 713, 714) последовательно в отношении их диапазона для получения сортированных входных данных.
2. Способ (1100) сортировки по п. 1, в котором сегменты (401, 402, 403, 404) локальной памяти множества соединенных между собой узлов (701, 702) обработки данных структурированы в качестве асимметричной памяти.
3. Способ (1100) сортировки по п. 1, в котором количество первых процессов является равным количеству сегментов (401, 402, 403, 404) локальной памяти.
4. Способ (1100) сортировки по любому из пп. 1-3, в котором процессы выполнены с возможностью создания непересекающихся сортированных списков.
5. Способ (1100) сортировки по п. 1, в котором сортировка распределенных входных данных, локальная по узлу (701, 702) обработки данных, основана на одной процедуре из: последовательной процедуры сортировки и параллельной процедуры сортировки.
6. Способ (1100) сортировки по п. 1, в котором количество вторых процессов равно количеству диапазонных блоков (703, 704, 713, 714).
7. Способ (1100) сортировки по п. 1, в котором каждый диапазонный блок (703, 704, 713, 714) имеет отличный от других диапазон.
8. Способ (1100) сортировки по п. 1, в котором каждый диапазонный блок (703, 704, 713, 714) выполнен с возможностью приема множества сортированных списков, при этом количество сортированных списков в соответствии с количеством первых процессов.
9. Способ (1100) сортировки по п. 1, в котором второй процесс из числа вторых процессов, исполняемых на одном узле (701, 702) обработки данных, копируя множество сортированных списков в последовательность (703, 704, 713, 714) диапазонных блоков, осуществляет чтение последовательно из локальной памяти указанного одного узла (701) обработки данных и из локальной памяти других узлов (702) обработки данных.
10. Способ (1100) сортировки по п. 9, в котором второй процесс, исполняемый на указанном одном узле (701) обработки данных, посредством копирования множества сортированных списков в последовательность диапазонных блоков (703, 704, 713, 714), осуществляет запись только в локальную память указанного одного узла (701) обработки данных.
11. Способ (1100) сортировки по п. 1, в котором последовательное считывание сортированных элементов из последовательности диапазонных блоков (703, 704, 713, 714) выполняется с использованием аппаратной упреждающей выборки.
12. Способ (1100) сортировки по п. 1, в котором вторые процессы, для сравнения значений сортированных списков с диапазонами диапазонных блоков (703, 704, 713, 714) и для копирования множества сортированных списков в последовательность диапазонных блоков (703, 704, 713, 714), используют векторизованную обработку данных, в частности, векторизованную обработку данных, исполняемую на аппаратных блоках архитектуры с одним потоком команд и множественными потоками данных.
13. Способ (1100) сортировки по п. 1, в котором множество узлов (701, 702) обработки данных соединены между собой посредством межгнездовых соединений; а
локальная память одного узла (701) обработки данных является, для другого узла (702) обработки данных, удаленной памятью.
14. Система 100 обработки данных, содержащая:
множество соединенных между собой узлов (101, 103) обработки данных, каждый из которых содержит локальную память (107, 117) и блок (109, 119) обработки данных, при этом входные данные распределены по локальной памяти (107, 117) узлов (101, 103) обработки данных, а блоки (109, 119) обработки данных выполнены с возможностью:
сортировки (1001) распределенных входных данных, локально по узлу (701, 702) обработки данных, посредством развертывания первых процессов на узлах (701, 702) обработки данных для создания множества сортированных списков в сегментах (401, 402, 403, 404) локальной памяти узлов (701, 702) обработки данных;
создания (1102) последовательности диапазонных блоков (703, 704, 713, 714) в сегментах локальной памяти узлов (701, 702) обработки данных, при этом каждый диапазонный блок выполнен с возможностью хранения значения данных, находящиеся в пределах его диапазона;
копирования (1103) указанного множества сортированных списков в указанную последовательность диапазонных блоков (703, 704, 713, 714) посредством развертывания вторых процессов на узлах (701, 702) обработки данных, при этом каждый диапазонный блок (703, 704, 713, 714) принимает те элементы сортированных списков, значения которых находятся в пределах его диапазона;
сортировки (1104) элементов диапазонных блоков (703, 704, 713, 714), локально по узлу обработки данных, с использованием вторых процессов для создания сортированных элементов в диапазонных блоках (703, 704, 713, 714); и
считывают (1105) сортированные элементы из последовательности диапазонных блоков (703, 704, 713, 714) последовательно в отношении их диапазона для получения сортированных входных данных.
15. Компьютерный программный продукт, содержащий машиночитаемый носитель информации, хранящий на себе программный код для использования компьютером, причем программный код выполнен с возможностью сортировки входных данных, распределенных по сегментам локальной памяти множества соединенных между собой узлов обработки данных, и содержит:
команды для локальной сортировки (1101) распределенных входных данных по узлу (701, 702) обработки данных, посредством развертывания первых процессов на узлах (701, 702) обработки данных для создания множества сортированных списков в сегментах (401, 402, 403, 404) локальной памяти узлов (701, 702) обработки данных;
команды для создания (1101) последовательности диапазонных блоков (703, 704, 713, 714) в сегментах локальной памяти узлов обработки данных, при этом каждый диапазонный блок выполнен с возможностью хранения значений данных, находящихся в пределах его диапазона;
команды для копирования (1103) этого множества сортированных списков в эту последовательность диапазонных блоков (703, 704, 713, 714) посредством развертывания вторых процессов на узлах (701, 702) обработки данных, при этом каждый диапазонный блок (703, 704, 713, 714) принимает те элементы сортированных списков, значения которых находятся в пределах его диапазона;
команды для локальной сортировки (1104) элементов диапазонных блоков (703, 704, 713, 714), по узлу (701, 702) обработки данных, с использованием вторых процессов для создания сортированных элементов в диапазонных блоках (703, 704, 713, 714); и
команды для считывания (1105) сортированных элементов из последовательности диапазонных блоков (703, 704, 713, 714), последовательного в отношении их диапазона, для получения сортированных входных данных.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2014/061269 WO2015180793A1 (en) | 2014-05-30 | 2014-05-30 | Parallel mergesorting |
Publications (3)
Publication Number | Publication Date |
---|---|
RU2016151387A true RU2016151387A (ru) | 2018-07-04 |
RU2016151387A3 RU2016151387A3 (ru) | 2018-07-04 |
RU2667385C2 RU2667385C2 (ru) | 2018-09-19 |
Family
ID=50942660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2016151387A RU2667385C2 (ru) | 2014-05-30 | 2014-05-30 | Параллельная сортировка слиянием |
Country Status (5)
Country | Link |
---|---|
US (1) | US20170083286A1 (ru) |
JP (1) | JP6318303B2 (ru) |
CN (1) | CN106462386B (ru) |
RU (1) | RU2667385C2 (ru) |
WO (1) | WO2015180793A1 (ru) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122134B (zh) * | 2017-04-25 | 2020-01-03 | 杭州迪普科技股份有限公司 | 一种数据读取的方法和装置 |
KR102343652B1 (ko) * | 2017-05-25 | 2021-12-24 | 삼성전자주식회사 | 벡터 프로세서의 서열 정렬 방법 |
CN108804073B (zh) * | 2018-05-21 | 2021-12-17 | 南京大学 | 一种多流水实时高速排序引擎系统 |
CN109271132B (zh) * | 2018-09-19 | 2023-07-18 | 中南大学 | 一种基于机器学习模型的排序方法 |
CN109949378B (zh) * | 2019-03-26 | 2021-06-08 | 中国科学院软件研究所 | 图像灰度值排序方法、装置、电子设备及计算机可读介质 |
CN112015366B (zh) * | 2020-07-06 | 2021-09-10 | 中科驭数(北京)科技有限公司 | 数据排序方法、数据排序装置及数据库系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0377993A3 (en) * | 1989-01-13 | 1991-12-18 | International Business Machines Corporation | Sorting distributed data |
US5179699A (en) * | 1989-01-13 | 1993-01-12 | International Business Machines Corporation | Partitioning of sorted lists for multiprocessors sort and merge |
US5671405A (en) * | 1995-07-19 | 1997-09-23 | International Business Machines Corporation | Apparatus and method for adaptive logical partitioning of workfile disks for multiple concurrent mergesorts |
US5852826A (en) | 1996-01-26 | 1998-12-22 | Sequent Computer Systems, Inc. | Parallel merge sort method and apparatus |
JP3774324B2 (ja) * | 1998-08-03 | 2006-05-10 | 株式会社日立製作所 | ソート処理システムおよびソート処理の方法 |
US6427148B1 (en) | 1998-11-09 | 2002-07-30 | Compaq Computer Corporation | Method and apparatus for parallel sorting using parallel selection/partitioning |
US6542826B2 (en) * | 2001-06-11 | 2003-04-01 | Saudi Arabian Oil Company | BT sorting method and apparatus for large volumes of seismic data |
US7536432B2 (en) | 2002-04-26 | 2009-05-19 | Nihon University School Juridical Person | Parallel merge/sort processing device, method, and program for sorting data strings |
CN100470463C (zh) * | 2003-07-30 | 2009-03-18 | 智邦科技股份有限公司 | 合并排序分布式数据的方法 |
WO2008078517A1 (ja) * | 2006-12-22 | 2008-07-03 | Nec Corporation | 並列ソート装置、方法、およびプログラム |
US8332595B2 (en) | 2008-02-19 | 2012-12-11 | Microsoft Corporation | Techniques for improving parallel scan operations |
CN101639769B (zh) * | 2008-07-30 | 2013-03-06 | 国际商业机器公司 | 在多处理器系统上对数据集进行划分及排序的方法和装置 |
US10089379B2 (en) * | 2008-08-18 | 2018-10-02 | International Business Machines Corporation | Method for sorting data |
US8463820B2 (en) * | 2009-05-26 | 2013-06-11 | Intel Corporation | System and method for memory bandwidth friendly sorting on multi-core architectures |
WO2014031114A1 (en) * | 2012-08-22 | 2014-02-27 | Empire Technology Development Llc | Partitioning sorted data sets |
-
2014
- 2014-05-30 CN CN201480079048.4A patent/CN106462386B/zh active Active
- 2014-05-30 RU RU2016151387A patent/RU2667385C2/ru active
- 2014-05-30 JP JP2017514787A patent/JP6318303B2/ja active Active
- 2014-05-30 WO PCT/EP2014/061269 patent/WO2015180793A1/en active Application Filing
-
2016
- 2016-11-30 US US15/365,463 patent/US20170083286A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CN106462386B (zh) | 2019-09-13 |
RU2667385C2 (ru) | 2018-09-19 |
US20170083286A1 (en) | 2017-03-23 |
JP2017517832A (ja) | 2017-06-29 |
RU2016151387A3 (ru) | 2018-07-04 |
WO2015180793A1 (en) | 2015-12-03 |
JP6318303B2 (ja) | 2018-04-25 |
CN106462386A (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2016151387A (ru) | Параллельная сортировка слиянием | |
US20150006316A1 (en) | System and method for parallel search on explicitly represented graphs | |
JP2016515266A5 (ru) | ||
JP2018538596A5 (ru) | ||
JP2013196680A (ja) | 共学習に基づく概念認識方法および概念認識装置 | |
CN105159987A (zh) | 一种数据存储、查找方法及装置 | |
JP2006139427A (ja) | データフローグラフの同一サブグラフ検出装置、高位合成装置、データフローグラフの同一サブグラフ検出方法、データフローグラフの同一サブグラフ検出制御プログラムおよび可読記録媒体 | |
Wang et al. | Lnetwork: an efficient and effective method for constructing phylogenetic networks | |
CN104794129B (zh) | 一种基于查询日志的数据处理方法和系统 | |
Dabah et al. | AN EFFICIENT TABU SEARCH NEIGHBORHOOD BASED ON RECONSTRUCTION STRATEGY TO SOLVE THE BLOCKING JOB SHOP SCHEDULING PROBLEM. | |
KR20180085633A (ko) | 질의 처리 장치 및 방법 | |
RU2016119815A (ru) | Инструкция и логика для идентификации инструкций для удаления в многопоточном процессоре с изменением последовательности | |
JP2017134543A5 (ru) | ||
CN110837372B (zh) | 汇编代码清除混淆的方法、装置、介质及设备 | |
US11586633B2 (en) | Secondary tagging in a data heap | |
WO2015189970A1 (ja) | 情報処理装置及びそのデータ処理方法 | |
JP2009199439A (ja) | マージソート処理方法、マージソート処理装置、及びマージソート処理プログラム | |
CN108958702B (zh) | 一种排序网络、排序方法及排序装置 | |
WO2016018400A1 (en) | Data merge processing | |
CN114429799B (zh) | 虚拟分子筛选系统、方法、电子设备及计算机可读存储介质 | |
US8924654B1 (en) | Multistreamed processor vector packing method and apparatus | |
CN103034698A (zh) | 数据存储方法及装置 | |
KR101669356B1 (ko) | 삼각형 열거를 위한 맵 리듀스 방법, 및 그 방법을 이용하는 장치들 | |
WO2016018399A1 (en) | Prioritization processing | |
CN106776790A (zh) | 基于令牌的并发主从同步方法及装置 |