RU2012144803A - Многопоточная сортировка элементов данных в электронных таблицах - Google Patents
Многопоточная сортировка элементов данных в электронных таблицах Download PDFInfo
- Publication number
- RU2012144803A RU2012144803A RU2012144803/08A RU2012144803A RU2012144803A RU 2012144803 A RU2012144803 A RU 2012144803A RU 2012144803/08 A RU2012144803/08 A RU 2012144803/08A RU 2012144803 A RU2012144803 A RU 2012144803A RU 2012144803 A RU2012144803 A RU 2012144803A
- Authority
- RU
- Russia
- Prior art keywords
- blocks
- data elements
- spreadsheet
- block
- sort
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/191—Automatic line break hyphenation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/06—Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
- G06F7/14—Merging, i.e. combining at least two sets of record carriers each arranged in the same ordered sequence to produce a single set having the same ordered sequence
- G06F7/16—Combined merging and sorting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
- G06F7/26—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general the sorted data being recorded on the original record carrier within the same space in which the data had been recorded prior to their sorting, without using intermediate storage
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Digital Computer Display Output (AREA)
- Document Processing Apparatus (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
1. Способ, содержащий этапы, на которых:разделяют посредством вычислительной системы элементы данных в электронной таблице на множество блоков;используют многочисленные потоки для сортировки элементов данных в блоках;после сортировки элементов данных в блоках используют многочисленные потоки для слияния блоков в заключительный блок, причем заключительный блок содержит каждый из элементов данных в электронной таблице; иотображают сортированную версию электронной таблицы, причем в этой версии элементы данных в электронной таблице имеют такой же порядок, как порядок элементов данных в заключительном блоке.2. Способ по п.1, дополнительно содержащий этапы, на которых:определяют надлежащий размер блока на основе количества элементов данных в электронной таблице; ипри этом элементы данных в электронной таблице разделяют на множество блоков таким образом, что ни один из этих блоков не содержит больше элементов данных, чем предусматривает надлежащий размер блока, и только один из блоков может содержать меньше данных, чем предусматривает надлежащий размер блока.3. Способ по п.2, причем определение надлежащего размера блока содержит этап, на котором определяют, что надлежащий размер блока является заданным размером, когда общее количество элементов данных в электронной таблице больше, чем один порог, и меньше, чем другой порог, или равен ему.4. Способ по п.1, причем элементы данных в заключительном блоке упорядочены должным образом для многочисленных столбцов, по которым проводится сортировка.5. Способ по п.1, дополнительно содержащий этапы, на которых:определяют превышает ли общее количество элементов данных в эле�
Claims (15)
1. Способ, содержащий этапы, на которых:
разделяют посредством вычислительной системы элементы данных в электронной таблице на множество блоков;
используют многочисленные потоки для сортировки элементов данных в блоках;
после сортировки элементов данных в блоках используют многочисленные потоки для слияния блоков в заключительный блок, причем заключительный блок содержит каждый из элементов данных в электронной таблице; и
отображают сортированную версию электронной таблицы, причем в этой версии элементы данных в электронной таблице имеют такой же порядок, как порядок элементов данных в заключительном блоке.
2. Способ по п.1, дополнительно содержащий этапы, на которых:
определяют надлежащий размер блока на основе количества элементов данных в электронной таблице; и
при этом элементы данных в электронной таблице разделяют на множество блоков таким образом, что ни один из этих блоков не содержит больше элементов данных, чем предусматривает надлежащий размер блока, и только один из блоков может содержать меньше данных, чем предусматривает надлежащий размер блока.
3. Способ по п.2, причем определение надлежащего размера блока содержит этап, на котором определяют, что надлежащий размер блока является заданным размером, когда общее количество элементов данных в электронной таблице больше, чем один порог, и меньше, чем другой порог, или равен ему.
4. Способ по п.1, причем элементы данных в заключительном блоке упорядочены должным образом для многочисленных столбцов, по которым проводится сортировка.
5. Способ по п.1, дополнительно содержащий этапы, на которых:
определяют превышает ли общее количество элементов данных в электронной таблице нижний предел; и
используют единственный поток для сортировки элементов данных в электронной таблице, когда общее количество элементов данных в электронной таблице не превышает нижний предел.
6. Способ по п.1, дополнительно содержащий этапы, на которых:
определяют надлежащее количество потоков сортировки блоков для электронной таблицы перед сортировкой элементов данных в блоках;
причем использование многочисленных потоков для сортировки элементов данных в блоках содержит этап, на котором используют надлежащее количество потоков сортировки блоков для сортировки данных в блоках;
при этом надлежащее количество потоков сортировки блоков равно количеству блоков, когда количество блоков меньше, чем количество модулей обработки в системе обработки, или равно ему;
при этом надлежащее количество потоков сортировки блоков равно количеству модулей обработки в системе обработки, когда количество блоков больше, чем количество модулей обработки в системе обработки, или равно ему.
7. Способ по п.1, причем использование многочисленных потоков для слияния блоков в заключительный блок содержит этапы, на которых:
инициируют поток слияния по минимуму, который последовательно вставляет наименьшие элементы данных в сортированных блоках в заключительный блок; и
инициируют поток слияния по максимуму, который последовательно вставляет наибольшие элементы данных в сортированных блоках в заключительный блок.
8. Способ по п.7, причем поток слияния по минимуму использует первое красно-черное дерево для идентификации наименьших элементов данных в сортированных блоках; и
при этом поток слияния по максимуму использует второе красно-черное дерево для идентификации наибольших элементов данных в сортированных блоках.
9. Способ по п.7, причем многочисленные потоки, используемые для сортировки элементов данных в блоках, работают одновременно; и
при этом поток слияния по минимуму и поток слияния по максимуму работают одновременно.
10. Вычислительная система, содержащая:
систему обработки, которая содержит множество модулей обработки; и
систему хранения данных, которая хранит машиночитаемые команды, которые при исполнении их одним или более модулями обработки заставляют вычислительную систему:
разделять элементы данных в электронной таблице на множество блоков;
использовать многочисленные потоки для сортировки элементов данных в блоках на основе релевантного свойства ячеек в ряду, по которому проводится сортировка, электронной таблицы;
использовать многочисленные потоки для слияния блоков в заключительный блок, причем этот заключительный блок содержит каждый из элементов данных в электронной таблице; и
отображать сортированную версию электронной таблицы, причем в этой версии элементы данных в электронной таблице имеют такой же порядок, как порядок элементов данных в заключительном блоке.
11. Вычислительная система по п.10, в которой машиночитаемые команды при исполнении их одним или более модулями обработки вызывают определение вычислительной системой надлежащего размера блока на основе количества элементов данных в электронной таблице, причем ни один из блоков не имеет больше элементов данных, чем предусматривает надлежащий размер блока.
12. Вычислительная система по п.10, в которой машиночитаемые команды при исполнении их одним или более модулями обработки также вызывают определение вычислительной системой надлежащего количества потоков сортировки блоков,
причем надлежащее количество потоков сортировки блоков равно количеству блоков, когда количество блоков меньше, чем количество модулей обработки в системе обработки, или равно ему,
при этом надлежащее количество потоков сортировки блоков равно количеству модулей обработки в системе обработки, когда количество блоков больше, чем количество модулей обработки в системе обработки, или равно ему, и
при этом вычислительная система использует надлежащее количество потоков сортировки блоков для сортировки элементов данных в блоках.
13. Вычислительная система по п.10, в которой для использования многочисленных потоков для слияния блоков в заключительный блок машиночитаемые команды при исполнении их одним или более модулями обработки заставляют вычислительную систему:
инициировать поток слияния по минимуму, который последовательно вставляет наименьшие элементы данных в сортированных блоках в заключительный блок; и
инициировать поток слияния по максимуму, который последовательно вставляет наибольшие элементы данных в сортированных блоках в заключительный блок.
14. Вычислительная система по п.13,
в которой поток слияния по минимуму и поток слияния по максимуму работают одновременно; и
при этом многочисленные потоки, используемые для сортировки элементов данных в блоках, работают одновременно.
15. Машиночитаемый носитель данных, который хранит машиночитаемые команды, которые при исполнении их одним или более модулями обработки в системе обработки вычислительной системы заставляют эту вычислительную систему:
определять, превышает ли общее количество элементов данных в электронной таблице нижний предел;
когда общее количество элементов данных в электронной таблице не превышает нижний предел - использовать единственный поток для сортировки элементов данных в электронной таблице;
когда общее количество элементов данных в электронной таблице равно нижнему пределу или превышает его:
определять, что надлежащий размер блока является первым размером блока, когда общее количество элементов данных в электронной таблице больше, чем первый порог, и меньше, чем второй порог, или равно ему;
определять, что надлежащий размер блока является вторым размером блока, когда общее количество элементов данных в электронной таблице больше, чем второй порог, при этом второй размер больше, чем первый размер;
разделять элементы данных в электронной таблице на множество блоков, причем ни один из блоков не содержит больше элементов данных, чем предписывает надлежащий размер блока, и только один из блоков может содержать меньше элементов данных, чем предписывает надлежащий размер блока;
определять надлежащее количество потоков сортировки блоков для электронной таблицы;
при этом надлежащее количество потоков сортировки блоков равно количеству блоков, когда количество блоков меньше, чем количество модулей обработки в системе обработки, или равно ему,
при этом надлежащее количество потоков сортировки блоков равно количеству модулей обработки в системе обработки, когда количество блоков больше, чем количество модулей обработки в системе обработки, или равно ему;
использовать множество потоков сортировки блоков для сортировки элементов данных в блоках, причем количество потоков сортировки блоков равно надлежащему количеству потоков сортировки блоков; и
после того, как потоки сортировки блоков отсортировали элементы данных в каждом из блоков, - использовать поток слияния по минимуму и поток слияния по максимуму для слияния элементов данных в блоках в заключительный блок, причем заключительный блок содержит каждый из элементов данных в электронной таблице, при этом поток слияния по минимуму постепенно вставляет наименьшие элементы данных в сортированных блоках в заключительный блок, при этом поток слияния по максимуму постепенно вставляет наибольшие элементы данных в сортированных блоках в заключительный блок; и
отображать сортированную версию электронной таблицы, причем в этой версии элементы данных в электронной таблице имеют такой же порядок, как порядок элементов данных в заключительном блоке.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/766,629 | 2010-04-23 | ||
| US12/766,629 US20110264993A1 (en) | 2010-04-23 | 2010-04-23 | Multi-Threaded Sort of Data Items in Spreadsheet Tables |
| PCT/US2011/030568 WO2011133302A2 (en) | 2010-04-23 | 2011-03-30 | Multi-threaded sort of data items in spreadsheet tables |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RU2012144803A true RU2012144803A (ru) | 2014-04-27 |
Family
ID=44816826
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RU2012144803/08A RU2012144803A (ru) | 2010-04-23 | 2011-03-30 | Многопоточная сортировка элементов данных в электронных таблицах |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US20110264993A1 (ru) |
| EP (1) | EP2561437A4 (ru) |
| CN (1) | CN102918496A (ru) |
| AU (1) | AU2011243093B2 (ru) |
| CA (1) | CA2794081A1 (ru) |
| IL (1) | IL222152A (ru) |
| RU (1) | RU2012144803A (ru) |
| SG (1) | SG184433A1 (ru) |
| WO (1) | WO2011133302A2 (ru) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8527866B2 (en) | 2010-04-30 | 2013-09-03 | Microsoft Corporation | Multi-threaded sort of data items in spreadsheet tables |
| US9612670B2 (en) | 2011-09-12 | 2017-04-04 | Microsoft Technology Licensing, Llc | Explicit touch selection and cursor placement |
| US11243987B2 (en) * | 2016-06-16 | 2022-02-08 | Microsoft Technology Licensing, Llc | Efficient merging and filtering of high-volume metrics |
| US10871945B2 (en) * | 2018-04-13 | 2020-12-22 | Microsoft Technology Licensing, Llc | Resumable merge sort |
| CN110413849A (zh) * | 2019-07-22 | 2019-11-05 | 上海赜睿信息科技有限公司 | 一种数据排序方法及装置 |
| CN119691004B (zh) * | 2025-02-26 | 2025-05-09 | 浙江智臾科技有限公司 | 一种基于分组信息的等值查询方法及数据库系统 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5396621A (en) * | 1991-05-10 | 1995-03-07 | Claris Corporation | Sorting a table by rows or columns in response to interactive prompting with a dialog box graphical icon |
| US6626959B1 (en) * | 1999-06-14 | 2003-09-30 | Microsoft Corporation | Automatic formatting of pivot table reports within a spreadsheet |
| AU2003231521A1 (en) * | 2002-04-26 | 2003-11-10 | Nihon University School Juridical Person | Parallel merge/sort processing device, method, and program |
| US7246353B2 (en) * | 2002-06-12 | 2007-07-17 | Microsoft Corporation | Method and system for managing the execution of threads and the processing of data |
| US7454420B2 (en) * | 2004-11-08 | 2008-11-18 | Sas Institute Inc. | Data sorting method and system |
| US7861060B1 (en) * | 2005-12-15 | 2010-12-28 | Nvidia Corporation | Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior |
| US8005873B2 (en) * | 2006-01-25 | 2011-08-23 | Microsoft Corporation | Filtering and sorting information |
| US8032821B2 (en) * | 2006-05-08 | 2011-10-04 | Microsoft Corporation | Multi-thread spreadsheet processing with dependency levels |
| US20100049445A1 (en) * | 2008-06-20 | 2010-02-25 | Eureka Genomics Corporation | Method and apparatus for sequencing data samples |
| US8527866B2 (en) * | 2010-04-30 | 2013-09-03 | Microsoft Corporation | Multi-threaded sort of data items in spreadsheet tables |
-
2010
- 2010-04-23 US US12/766,629 patent/US20110264993A1/en not_active Abandoned
-
2011
- 2011-03-30 CN CN2011800202027A patent/CN102918496A/zh active Pending
- 2011-03-30 SG SG2012073623A patent/SG184433A1/en unknown
- 2011-03-30 AU AU2011243093A patent/AU2011243093B2/en not_active Ceased
- 2011-03-30 CA CA2794081A patent/CA2794081A1/en not_active Abandoned
- 2011-03-30 RU RU2012144803/08A patent/RU2012144803A/ru unknown
- 2011-03-30 WO PCT/US2011/030568 patent/WO2011133302A2/en not_active Ceased
- 2011-03-30 EP EP11772409.6A patent/EP2561437A4/en not_active Withdrawn
-
2012
- 2012-09-27 IL IL222152A patent/IL222152A/en not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| AU2011243093A1 (en) | 2012-09-27 |
| EP2561437A2 (en) | 2013-02-27 |
| CN102918496A (zh) | 2013-02-06 |
| CA2794081A1 (en) | 2011-10-27 |
| IL222152A (en) | 2016-08-31 |
| AU2011243093B2 (en) | 2014-07-10 |
| WO2011133302A3 (en) | 2012-01-19 |
| US20110264993A1 (en) | 2011-10-27 |
| EP2561437A4 (en) | 2018-01-24 |
| WO2011133302A2 (en) | 2011-10-27 |
| SG184433A1 (en) | 2012-11-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| RU2012144803A (ru) | Многопоточная сортировка элементов данных в электронных таблицах | |
| WO2011136937A3 (en) | Multi-threaded sort of data items in spreadsheet tables | |
| Toloo | Alternative minimax model for finding the most efficient unit in data envelopment analysis | |
| BRPI0507021A (pt) | métodos de ordenação de membros associados numa rede social e meio legìvel em computador | |
| GB2535653A (en) | Data processing apparatus and method for processing a plurality of threads | |
| EP2570995A3 (en) | Multistage collector for outputs in multiprocessor systems | |
| HK1201341A1 (en) | Elastic, massively parallel processing data warehouse | |
| WO2010068799A3 (en) | Multi-nucleated cell classification and micronuclei scoring | |
| WO2013019486A3 (en) | Sorting system, method and computer readable medium with delivery multiplier | |
| CN111723206B (zh) | 文本分类方法、装置、计算机设备和存储介质 | |
| US9715487B2 (en) | Multi-level naming of grouped data | |
| CN107783894A (zh) | 一种多任务多终端移动应用测试方法及其系统 | |
| ATE516546T1 (de) | System und verfahren zum halten von objekten in einem nachschlage-cache | |
| JP2013164704A5 (ru) | ||
| WO2008136045A1 (ja) | 共有メモリ型スカラ並列計算機向け、実対称行列の三重対角化の並列処理方法 | |
| CN103500224A (zh) | 一种数据写入方法及装置、数据读取方法及装置 | |
| CN204462970U (zh) | 一种适合大数据采集存储应用的国产服务器系统 | |
| CN108121745B (zh) | 一种数据加载方法和装置 | |
| CN105045600A (zh) | 一种多组有序序列的并行排序方法 | |
| ATE401612T1 (de) | Cluster-technik für zyklische phänomene | |
| BR112012016577A2 (pt) | "sistema de negociação automatizado, método para compatibilização de ordens em um sistema de negociação automatizado,e, programa de computador" | |
| Schweickert et al. | Tree inference with factors selectively influencing processes in a processing tree | |
| CN104866584A (zh) | 一种基于业务规则的数据分区方法及装置 | |
| Khaz'ali et al. | Parallel implementation of coupled phase equilibrium-mass transfer model: Efficient and accurate simulation of fractured reservoirs | |
| CN106980630B (zh) | 一种数据旋转展示方法及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| HZ9A | Changing address for correspondence with an applicant |