RU2016151387A - Параллельная сортировка слиянием - Google Patents

Параллельная сортировка слиянием Download PDF

Info

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
Application number
RU2016151387A
Other languages
English (en)
Other versions
RU2016151387A3 (ru
RU2667385C2 (ru
Inventor
Махеш Кумар БЕХЕРА
Прасанна Венкатеш РАМАМУРТХИ
Антони ВОЛЬСКИ
Original Assignee
Хуавей Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавей Текнолоджиз Ко., Лтд. filed Critical Хуавей Текнолоджиз Ко., Лтд.
Publication of RU2016151387A3 publication Critical patent/RU2016151387A3/ru
Publication of RU2016151387A publication Critical patent/RU2016151387A/ru
Application granted granted Critical
Publication of RU2667385C2 publication Critical patent/RU2667385C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/36Combined merging and sorting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/32Merging, 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

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), последовательного в отношении их диапазона, для получения сортированных входных данных.
RU2016151387A 2014-05-30 2014-05-30 Параллельная сортировка слиянием RU2667385C2 (ru)

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
RU2016151387A3 RU2016151387A3 (ru) 2018-07-04
RU2016151387A true RU2016151387A (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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179699A (en) * 1989-01-13 1993-01-12 International Business Machines Corporation Partitioning of sorted lists for multiprocessors sort and merge
EP0377993A3 (en) * 1989-01-13 1991-12-18 International Business Machines Corporation Sorting distributed data
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
AU2003231521A1 (en) 2002-04-26 2003-11-10 Nihon University School Juridical Person Parallel merge/sort processing device, method, and program
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

Also Published As

Publication number Publication date
RU2016151387A3 (ru) 2018-07-04
RU2667385C2 (ru) 2018-09-19
JP6318303B2 (ja) 2018-04-25
CN106462386A (zh) 2017-02-22
WO2015180793A1 (en) 2015-12-03
CN106462386B (zh) 2019-09-13
US20170083286A1 (en) 2017-03-23
JP2017517832A (ja) 2017-06-29

Similar Documents

Publication Publication Date Title
RU2016151387A (ru) Параллельная сортировка слиянием
US9740659B2 (en) Merging and sorting arrays on an SIMD processor
JP2019530068A5 (ru)
Moon et al. Parallel community detection on large graphs with MapReduce and GraphChi
JP2016515266A5 (ru)
RU2017113620A (ru) Составные функции разбиения
Simsiri et al. Work-efficient parallel union-find with applications to incremental graph connectivity
JP2018538596A5 (ru)
CN103699442A (zh) MapReduce计算框架下的可迭代式数据处理方法
CN105159987A (zh) 一种数据存储、查找方法及装置
CN107451204B (zh) 一种数据查询方法、装置及设备
JP2006139427A (ja) データフローグラフの同一サブグラフ検出装置、高位合成装置、データフローグラフの同一サブグラフ検出方法、データフローグラフの同一サブグラフ検出制御プログラムおよび可読記録媒体
Dabah et al. AN EFFICIENT TABU SEARCH NEIGHBORHOOD BASED ON RECONSTRUCTION STRATEGY TO SOLVE THE BLOCKING JOB SHOP SCHEDULING PROBLEM.
KR20180085633A (ko) 질의 처리 장치 및 방법
JP2017134543A5 (ru)
US11586633B2 (en) Secondary tagging in a data heap
WO2016091072A1 (zh) 分布式数据存储方法及分布式数据集群系统
US20170053000A1 (en) Parallel quicksort
JP2009199439A (ja) マージソート処理方法、マージソート処理装置、及びマージソート処理プログラム
CN110837372A (zh) 汇编代码清除混淆的方法、装置、介质及设备
Narayanan et al. An enhanced MapReduce framework for solving protein folding problem using a parallel genetic algorithm
WO2016018400A1 (en) Data merge processing
KR101626721B1 (ko) 사각망 순열패턴매칭을 위한 효율적인 알고리즘
CN103034698A (zh) 数据存储方法及装置
KR101669356B1 (ko) 삼각형 열거를 위한 맵 리듀스 방법, 및 그 방법을 이용하는 장치들