RU2012144803A - Многопоточная сортировка элементов данных в электронных таблицах - Google Patents

Многопоточная сортировка элементов данных в электронных таблицах Download PDF

Info

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
Application number
RU2012144803/08A
Other languages
English (en)
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 RU2012144803A publication Critical patent/RU2012144803A/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/191Automatic line break hyphenation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/14Merging, 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/16Combined merging and sorting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/24Sorting, 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/26Sorting, 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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. Машиночитаемый носитель данных, который хранит машиночитаемые команды, которые при исполнении их одним или более модулями обработки в системе обработки вычислительной системы заставляют эту вычислительную систему:
определять, превышает ли общее количество элементов данных в электронной таблице нижний предел;
когда общее количество элементов данных в электронной таблице не превышает нижний предел - использовать единственный поток для сортировки элементов данных в электронной таблице;
когда общее количество элементов данных в электронной таблице равно нижнему пределу или превышает его:
определять, что надлежащий размер блока является первым размером блока, когда общее количество элементов данных в электронной таблице больше, чем первый порог, и меньше, чем второй порог, или равно ему;
определять, что надлежащий размер блока является вторым размером блока, когда общее количество элементов данных в электронной таблице больше, чем второй порог, при этом второй размер больше, чем первый размер;
разделять элементы данных в электронной таблице на множество блоков, причем ни один из блоков не содержит больше элементов данных, чем предписывает надлежащий размер блока, и только один из блоков может содержать меньше элементов данных, чем предписывает надлежащий размер блока;
определять надлежащее количество потоков сортировки блоков для электронной таблицы;
при этом надлежащее количество потоков сортировки блоков равно количеству блоков, когда количество блоков меньше, чем количество модулей обработки в системе обработки, или равно ему,
при этом надлежащее количество потоков сортировки блоков равно количеству модулей обработки в системе обработки, когда количество блоков больше, чем количество модулей обработки в системе обработки, или равно ему;
использовать множество потоков сортировки блоков для сортировки элементов данных в блоках, причем количество потоков сортировки блоков равно надлежащему количеству потоков сортировки блоков; и
после того, как потоки сортировки блоков отсортировали элементы данных в каждом из блоков, - использовать поток слияния по минимуму и поток слияния по максимуму для слияния элементов данных в блоках в заключительный блок, причем заключительный блок содержит каждый из элементов данных в электронной таблице, при этом поток слияния по минимуму постепенно вставляет наименьшие элементы данных в сортированных блоках в заключительный блок, при этом поток слияния по максимуму постепенно вставляет наибольшие элементы данных в сортированных блоках в заключительный блок; и
отображать сортированную версию электронной таблицы, причем в этой версии элементы данных в электронной таблице имеют такой же порядок, как порядок элементов данных в заключительном блоке.
RU2012144803/08A 2010-04-23 2011-03-30 Многопоточная сортировка элементов данных в электронных таблицах RU2012144803A (ru)

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)

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

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

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