МНОГОПОТОЧНАЯ СОРТИРОВКА ЭЛЕМЕНТОВ ДАННЫХ В ЭЛЕКТРОННЫХ ТАБЛИЦАХ

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. Машиночитаемый носитель данных, который хранит машиночитаемые команды, которые при исполнении их одним или более модулями обработки в системе обработки вычислительной системы заставляют эту вычислительную систему:
определять, превышает ли общее количество элементов данных в электронной таблице нижний предел;
когда общее количество элементов данных в электронной таблице не превышает нижний предел - использовать единственный поток для сортировки элементов данных в электронной таблице;
когда общее количество элементов данных в электронной таблице равно нижнему пределу или превышает его:
определять, что надлежащий размер блока является первым размером блока, когда общее количество элементов данных в электронной таблице больше, чем первый порог, и меньше, чем второй порог, или равно ему;
определять, что надлежащий размер блока является вторым размером блока, когда общее количество элементов данных в электронной таблице больше, чем второй порог, при этом второй размер больше, чем первый размер;
разделять элементы данных в электронной таблице на множество блоков, причем ни один из блоков не содержит больше элементов данных, чем предписывает надлежащий размер блока, и только один из блоков может содержать меньше элементов данных, чем предписывает надлежащий размер блока;
определять надлежащее количество потоков сортировки блоков для электронной таблицы;
при этом надлежащее количество потоков сортировки блоков равно количеству блоков, когда количество блоков меньше, чем количество модулей обработки в системе обработки, или равно ему,
при этом надлежащее количество потоков сортировки блоков равно количеству модулей обработки в системе обработки, когда количество блоков больше, чем количество модулей обработки в системе обработки, или равно ему;
использовать множество потоков сортировки блоков для сортировки элементов данных в блоках, причем количество потоков сортировки блоков равно надлежащему количеству потоков сортировки блоков; и
после того, как потоки сортировки блоков отсортировали элементы данных в каждом из блоков, - использовать поток слияния по минимуму и поток слияния по максимуму для слияния элементов данных в блоках в заключительный блок, причем заключительный блок содержит каждый из элементов данных в электронной таблице, при этом поток слияния по минимуму постепенно вставляет наименьшие элементы данных в сортированных блоках в заключительный блок, при этом поток слияния по максимуму постепенно вставляет наибольшие элементы данных в сортированных блоках в заключительный блок; и
отображать сортированную версию электронной таблицы, причем в этой версии элементы данных в электронной таблице имеют такой же порядок, как порядок элементов данных в заключительном блоке.