WO2006126467A1 - マルチプロセッサシステム及びその情報処理方法 - Google Patents
マルチプロセッサシステム及びその情報処理方法 Download PDFInfo
- Publication number
- WO2006126467A1 WO2006126467A1 PCT/JP2006/310110 JP2006310110W WO2006126467A1 WO 2006126467 A1 WO2006126467 A1 WO 2006126467A1 JP 2006310110 W JP2006310110 W JP 2006310110W WO 2006126467 A1 WO2006126467 A1 WO 2006126467A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- record
- item value
- item
- array
- value
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
Definitions
- the present invention relates to an information processing method in a shared memory multiprocessor system in which a plurality of processors share a memory and perform parallel processing, and in particular, a large-scale tabular data on a shared memory is transferred to a plurality of processors. It relates to the information processing method which sorts in parallel.
- the present invention also relates to a shared memory multiprocessor system that implements such an information processing method.
- the present invention further relates to a program for realizing such an information processing method.
- the present invention further relates to a storage medium storing such a program.
- Sorting is a process that occurs frequently when processing large-scale data, especially large-scale tabular data.
- Radix (RADIX) sort and counting (COUNTING) sort also called count sort, distribution counting sort
- Counting sort is sometimes used for sorting each digit of radix sort and is an efficient algorithm, but for its application,
- Sort target is an integer
- the present inventor has proposed a data management mechanism suitable for high-speed retrieval, tabulation, and sorting of large-scale tabular data (see Patent Document 1).
- This data tube has an information block for representing each item value of the tabular data item.
- item values belonging to tabular data items are represented by item value numbers assigned to the item values and an array of actual item values arranged in the order of the item value numbers.
- An array is prepared in which the item value numbers corresponding to the item values of each record are arranged in the order of the record number, and the item values of each record are identified by finding the array value of the item values corresponding to the item value numbers of that record. Is done.
- records to be processed in tabular data are specified by an array in which record numbers are arranged in order.
- the information block stores the item values corresponding to the item value numbers in the order of the item value numbers in which the item values belonging to the items are ordered (integerized) for each item of the tabular data. It is a table that was made.
- the field value itself can be any type of data, such as a number (integer, fixed point, floating point, etc.), string, etc. Therefore, this data management mechanism is characterized in that all types of data values can be handled as integers called item value numbers. That is, according to this data management mechanism, for example, when character string data is sorted, items corresponding to the value of character string data are not sorted as they are for sorting. The value number can be sorted as a sort target.
- the result of sorting is represented by an array in which record numbers are arranged in order.
- the data management mechanism based on the information block proposed by the present inventor is excellent in that it satisfies the prerequisites 1) to 3) for applying the counting sort.
- parallel processing architectures are broadly divided into “distributed memory type” and “shared memory type”.
- distributed memory type each processor has its own local memory, and these are combined to construct a system.
- the distributed memory type has technical problems such as the complexity of data division management and the low efficiency of interprocessor communication.
- shared memory type is a method in which multiple processors share one huge memory space. In this method, traffic between the processor group and shared memory becomes a bottleneck, so in reality, more than 100 processors are used. V. It is thought that building a system is not easy.
- a personal computer configured as a shared memory multiprocessor system using a plurality of CPUs has recently been available.
- a standard CPU used in this type of personal computer operates with an internal clock that is about 5-6 times the memory bus, and is equipped with automatic parallel execution and pipeline processing functions. Approximately 1 data can be processed in 1 clock (memory bus).
- Patent Document 1 International Publication WOOOZ10103 Publication
- Counting sort which is known as an efficient sorting algorithm, is restricted by the preconditions 1) to 3) above, and therefore data based on the above information block proposed by the present inventor. Unless a management mechanism is adopted, it is difficult to apply to large-scale tabular data processing. Furthermore, the technology for sorting large-scale tabular data in parallel using a shared memory multiprocessor system is still known.
- an object of the present invention is to provide an information processing method for sorting large-scale tabular data on a shared memory in parallel by a plurality of processors using the data management mechanism based on the information block. It is to propose.
- an object of the present invention is to provide a shared memory type multi-processor system that implements such an information processing method.
- an object of the present invention is to provide a program for realizing such an information processing method.
- an object of the present invention is to provide a storage medium in which such a program is recorded.
- the above item values are arranged in the order of item value numbers (whether ascending or descending) in which item values belonging to the item are ordered (integerized). It relies on a data management mechanism based on an information block, which is a table in which item values corresponding to numbers are stored.
- the item value itself can be any type of data, such as a number (integer, fixed point, floating point, etc.) or a string.
- all types of data values can be handled as integers called item value numbers.
- the item value corresponding to the value of that data is not sorted as it is as the sort target.
- the data management mechanism based on this information block satisfies the prerequisites for applying the counting sort.
- the sorting result is represented by an array in which the record numbers are arranged in order.
- the present invention applies such a data management mechanism to a shared memory multiprocessor system to sort large-scale tabular data on the shared memory in parallel by a plurality of processors.
- An information processing method and a shared memory multiprocessor system that implements the information processing method are realized. Therefore, according to the present invention, first, a record to be processed is divided and assigned to a plurality of processors. Next, each processor counts the number of local occurrences of the field value number associated with the record being processed. Next, the local number of occurrences of the item value number counted by each processor is converted into a global cumulative number of item value numbers, that is, a cumulative number commonly used among a plurality of processors.
- each processor uses the global total number as a pointer to change the order of the allocated records. Therefore, according to the present invention, in a shared memory multiprocessor system, records are sorted in parallel with respect to item values (for example, integer values, fixed-point values, floating-point values, character strings, etc.) of items with records. Is possible.
- item values for example, integer values, fixed-point values, floating-point values, character strings, etc.
- the allocation of records to be processed to a plurality of processors, the power of the number of local appearances, and the change of the order of the allocated records can be processed in parallel by a plurality of processors.
- parallel processing of multiple processors may be used, but the cache can be accessed because the memory can be accessed sequentially. Since the hit rate is high, only one or some of the processors can take charge and maintain high speed.
- a first aspect of the present invention is an information processing method for rearranging the record order according to the item value of a predetermined item of a record in a shared memory multiprocessor system.
- a shared memory multiprocessor system has a record number array in which the record numbers of tabular data records are stored according to a predetermined record order, and the item value number corresponding to the item value of a predetermined item of the tabular data record is a record.
- Item value stored in accordance with the number A shared memory for storing the number array and the item value array in which the item values of the tabular data are stored in accordance with the order of the item value numbers corresponding to the item values, and the shared memory A plurality of processors capable of being connected.
- the information processing method includes the step of dividing the record number array and assigning the record number array to the first plurality of processors, and in each of the first plurality of processors, the assigned record number array Entering the number of occurrences of the item value number corresponding to the record contained in the part,
- each of the second plurality of processors in the order of the item value numbers, the assigned item values according to the order of the part of the record number array within the range where the item value numbers match. Converting the number of occurrences of each number into a cumulative number;
- the total number of the item value numbers corresponding to the records included in the portion of the allocated record number array is used as a pointer, and the allocated Storing the record numbers contained in the portion of the record number array in a further record number array;
- This information processing method includes parallelization of count processing of the number of appearances of an item value number, the number of appearances Parallelization of conversion processing from the cumulative number to the total number and parallelization of the creation processing of the record number array are achieved. Therefore, according to the present invention, it is possible to sort large-scale tabular data in parallel in a shared memory multiprocessor system by extending the counting sort technique so as to be compatible with the shared memory multiprocessor environment.
- any 1st multiple processors are responsible for each part of the record number array, and any 2nd multiple processors are item value numbers. Responsible for each part of the range. It should be noted that the number of the first multiple units and the number of the second multiple units may be the total number of processors or a part of them.
- the information processing method of the present invention can sort large-scale tabular data in multiple stages in a shared memory multiprocessor system by introducing the concept of radix sorting for item value numbers. is there. For example, when the size of the item value number array is large, the processing can be made more efficient if the item value number array can be compressed and used. Therefore, the information processing method according to the present invention is:
- the step of setting the radix of the item value number according to the range of the item value number, and the current digit in order from the lowest digit to the highest digit of the item value number expressed in the radix Repeating the sorting process with the record number array as the current record number array and the second and subsequent times with the further record number array as the current record number array;
- the record number array is within the range in which the value of the current digit of the item value number matches the order of the value of the current digit of the item value number. Converting each occurrence count of the value of the current digit of the assigned item value number into a cumulative number according to the order of the parts of
- the cumulative number of the current digit values of the item value numbers corresponding to the records included in the allocated record number array portion is used as a pointer. Storing a record number included in the allocated portion of the record number array in a further record number array.
- the sorting process for the current digit is repeated in order from the least significant digit of the item value number to the most significant digit, the sorting for the item value number is realized in accordance with the concept of radix sorting. Is done. Therefore, large-scale tabular data can be sorted in parallel in a shared memory multiprocessor system.
- the step of converting the number of occurrences of the current digit value of the item value number into a cumulative number is executed in parallel by the second plurality of processors.
- this step may be performed at high speed without being executed in parallel by multiple processors. This is because the processing of this step is performed sequentially, so the cache hit rate is high. Therefore, the information processing method according to the present invention includes the step of setting the radix of the item value number according to the range of the item value number, and the order from the least significant digit to the most significant digit of the item value number represented by the radix.
- the record number array is set as the current record number array for the first time
- the further record number array is set as the current record number array for the second and subsequent times.
- the sorting process is
- Dividing the current record number array and assigning it to the plurality of processors In each processor, the step of counting the number of occurrences of the value of the current digit of the item value number corresponding to the record included in the portion of the assigned record number array, and the item value number in at least one processor The current digit value of the assigned item value number according to the order of the part of the record number array within the range in which the current digit value of the item value number matches the current digit value order of Converting the number of occurrences of each into a cumulative number,
- the allocated number is assigned by using a cumulative number of current digit values of the item value numbers corresponding to records included in the allocated record number array portion as a pointer. Storing a record number included in the portion of the record number array in a further record number array;
- the range of the current digit of the item value number is not divided into a plurality of processors, and preferably at least one processor, preferably one processor has the current value of the item value number.
- the number of occurrences of the digit value is converted to the cumulative number in order.
- the sort processing related to the current digit is repeated in order from the lowest digit power of the item value number to the highest digit, so that the sort related to the item value number is realized according to the concept of the radix sort. Therefore, large-scale tabular data can be sorted in parallel on a shared memory multiprocessor system.
- the present invention supports a record number array in which the record numbers of tabular data records are stored in a predetermined record order, and corresponds to item values of predetermined items of tabular data records.
- a shared memory that stores an item value number array in which item value numbers to be stored are stored according to record numbers, and an item value array in which item values of tabular data are stored in accordance with the order of item value numbers corresponding to the item values ,
- An information processing method is provided that rearranges the order of records according to the item value of a predetermined item of a record.
- the present invention provides a record number array in which the record numbers of the tabular data records are stored according to a predetermined record order, and the item value of the predetermined item of the tabular data record.
- An item value number array in which the item value numbers corresponding to the item values are stored according to the record number, and an item value array in which the item values of the tabular data are stored according to the order of the item value numbers corresponding to the item values are shared Memory,
- An information processing method is provided that rearranges the order of records according to the item value of a predetermined item of a record.
- a second aspect of the present invention is a shared memory multiprocessor system that includes a shared memory and a plurality of processors that can access the shared memory, and implements the information processing method of the present invention. It is.
- the shared memory includes a record number array in which the record numbers of the tabular data records are stored according to a predetermined record order, and a predetermined item of the tabular data record.
- An item value number array in which item value numbers corresponding to item values are stored according to record numbers, and item values of tabular data are ranked according to the order of item value numbers corresponding to the item values. Store the stored item value array.
- the shared memory multiprocessor system of the present invention can use a data management mechanism based on block information.
- Means for determining a portion of the record number array that the processor is responsible for means for counting the number of occurrences of item value numbers corresponding to records included in the portion of the record number array,
- each processor can operate in parallel, parallelization of the count of appearance counts, parallelization of conversion to the cumulative number of occurrences, and parallelization of creation of record number arrays are realized. .
- the cumulative number obtained by the means for converting the number of appearances of the processor responsible for the preceding range in the range of the item value number into the cumulative number is the cumulative number of occurrences of the processor responsible for the immediately following range. Referenced by means of converting to.
- the shared memory multiprocessor system of the present invention sorts large-scale tabular data in multiple stages by introducing the concept of radix sort with respect to item value numbers.
- the record number array is the current record number array, 2 From the first time onwards, a means to set the further record number array as the current record number array and repeat the sorting process,
- the parallel sort processing for each digit up to the lowest digit power of the item value number up to the highest digit is executed in order.
- the means for repeating the sorting process includes:
- the value of the item value number in the range to be handled is in accordance with the order of the part of the record number array.
- the record number included in the record number array portion is further used as a pointer by using the cumulative number of the current digit value of the item value number corresponding to the record included in the record number array portion as a pointer.
- the parallel sort process for every digit of the item value number is realized.
- the processing power count of a plurality of units, the conversion of the number of appearances to the cumulative number, and the creation of a further record number array are performed in parallel. Execute.
- the present invention takes charge of the preceding range of the range of the current digit of the item value number.
- the cumulative number obtained by the means for converting the number of appearances of the profiler into the cumulative number is referred to by means for converting the number of appearances of the processor responsible for the immediately following range into the cumulative number.
- the shared memory multiprocessor system according to the present invention that sorts large-scale tabular data in multiple stages in parallel is configured to accumulate at least one, preferably at least one occurrence of each occurrence of the current digit value. It is also possible to run on a single processor. for that reason, In the shared memory multiprocessor system according to the present invention, each processor has means for setting a radix of the item value number according to the range of the item value number, and the least significant digit of the item value number expressed in the radix Set the current digit in order from the most significant digit
- the means for repeating the sorting process of each processor includes means for determining a portion of the record number array that the processor is responsible for and a current item value number corresponding to the record included in the portion of the record number array. Means for counting the number of occurrences of a digit value;
- the means for repeating the sorting process of at least one processor is within the range in which the value of the current digit of the item value number matches the order of the value of the current digit of the item value number.
- the means for repeating the sorting process uses the cumulative number of values of the current digit of the item value number corresponding to the records included in the record number array portion as a pointer, Means for storing record numbers contained in the number array portion in a further record number array.
- each processor does not need to determine the range handled by its own processor within the range of the current digit value of the item value number, and the number of appearances is counted as a cumulative number by a plurality of processors. Since it is not necessary to share the conversion process, the configuration of the shared memory multiprocessor system is simplified.
- a storage medium recording such a program is provided.
- FIG. 1 is a schematic diagram of an embodiment of a computer system that implements an information processing method for rearranging the record order according to the item values of predetermined items of a record according to the present invention.
- this computer system 10 has p processors (CPUs) 12-1, 12-2,... 12- p that control the entire system and individual components by executing programs.
- processors CPUs
- shared memory for storing work data, for example, RAM (Random Access Memory) 14, ROM (Read Only Memory) for storing programs, etc.
- a program according to the present embodiment for rearranging the record order according to the item value of a predetermined item of the record may be accommodated in the CD-ROM 19 and read by the CD-ROM driver 20, or the ROM 16 May be stored in advance. Alternatively, once the CD-ROM 19 is read, it may be stored in a predetermined area of the external storage medium 18. Alternatively, the program may be supplied from the outside via a network (not shown), an external terminal, and the IZF 22.
- the shared memory multiprocessor system causes the computer system 10 to execute a program that rearranges the record order according to the item value of a predetermined item of the record. Realized.
- FIG. 2 is a diagram showing an example of tabular data for explaining the data management mechanism.
- This tabular data is the data management machine proposed in the above-mentioned International Publication No. WO00Z10103. By using the structure, it is stored in the computer as a data structure as shown in Fig. 3.
- an array 301 (hereinafter, this array is abbreviated as "OrdSet") that associates the order number of each record of the tabular data with the order number of the internal data. ) Contains the sequence number of the internal data as a value for each tabular record. In this example, since all tabular data is represented as internal data, the record number of the tabular data and the order number of the internal data match.
- the actual gender value related to the record with the order number “0”, that is, “male” or “female” is a value list 303 (hereinafter referred to as a value list) in which the actual values are sorted according to a predetermined order. It can be obtained by referring to the pointer array 302 (hereinafter abbreviated as “VNo”).
- the pointer array 302 stores pointers that point to elements in the actual value list 303 in accordance with the order of the order numbers stored in the array OrdSet 301.
- the item value of the gender corresponding to the record “0” in the tabular data is (1) the array OrdSet301 output takes out the sequence number “0” corresponding to the record “0”, and (2) The element “1” corresponding to the sequence number “0” is extracted from the pointer array 302. (3) From the value list 303, the element “1” indicated by the element “1” extracted from the pointer array 302 to the value list is extracted. It can be obtained by removing the “ woman”.
- the item values can be obtained for other records as well as for age and height.
- the tabular data is expressed by a combination of the value list VL and the pointer array VNo to the value list, and this combination is particularly referred to as an “information block”.
- information blocks relating to gender, age and height are shown as information blocks 308, 309 and 310, respectively.
- a plurality of processors access record data stored in the shared memory, and high-speed sorting is realized by parallel processing of the plurality of processors.
- Figures 4A and B show the data structure to be sorted.
- the tabular data 401 shown in Fig. 4A is an easy-to-divide representation of the data structure to be sorted in a matrix format, and includes 20 records from record 0 to record 19, each record being It consists of two items: age and region.
- the data structure 402 shown in FIG. 4B represents the data structure stored in the shared memory 14 of the computer system 10.
- the age information block 404 includes an item value number array (hereinafter, also referred to as VNo: value number) 406 in which item value numbers corresponding to age item values are stored in the order of record numbers, and an age item.
- the region information block 405 includes an item value number array 408 in which item value numbers corresponding to region item values are stored in the order of record numbers, and an item number corresponding to the item value.
- the item value array 409 is stored in accordance with the above order.
- the p processors 12 — 1,..., 12 — p of the computer system 10 can access these data on the shared memory 14.
- FIG. 5 is a flowchart of a parallel sorting method according to the embodiment of the present invention.
- the number of CPUs is four and all CPUs operate in parallel.
- the total number of CPUs in the system and the number of CPUs operating in parallel are not limited to this example.
- the parallel sorting method consists of five steps from step 501 to step 505.
- Step 501 Divide the record number array into four parts and assign each part to four CPUs (see Fig. 6).
- Step 502 Each CPU counts the number of occurrences of the item value number corresponding to the record included in the allocated record number array part in parallel (FIGS. 7A, B to 9A, B). reference).
- Step 503 Assign five values from the item value number range 0, ie, item value number 0 to item value number 4, to the four CPUs. For example, item values 0 and 1 are assigned to CPU-0, and item values 2 to 4 are assigned to CPU-1 through CPU-3 one by one (see Figure 10A).
- Step 504 Each of the four CPUs, in the order of the item value numbers, appears within the range in which the item value numbers match, according to the order of the part of the record number array. Convert the number of times to a cumulative number (see Figures 10A and B).
- Step 505 The four CPUs use the cumulative number of item value numbers corresponding to the records included in the allocated record number array as pointers.
- the record number contained in the part is stored in a further record number array (see FIGS. 11A, B to 13A, B).
- FIG. 6 is an explanatory diagram of the initialization step 501 of the parallel sorting method.
- Four records are assigned to the four CPUs from CPU—0 to CPU—3 in order from the top of the record number array.
- CPU-0 is responsible for the first OrdSet [0] to the fifth OrdSet [4] in the record number array (x in OrdSet [x] represents the subscript of the array OrdSet).
- the shared memory 14 is provided with a count array Count 0, Count—1, Count—2, and Count—3 for counting the number of occurrences of the item value number, and is associated with each CPU.
- the number of Count arrays is the same as the number of CPUs
- the array size of Count arrays is the same as the size of VL arrays.
- the elements of the Count array are initialized with 0.
- FIGS. 7A and B to FIGS. 9A and 9B are explanatory diagrams of the count-up step 502 of the parallel sorting method.
- CPU-0 reads the value 0 of OrdSet [0], reads the value 1 of VNo [0], using the read value 0 as a subscript, and reads this value 1 As a subscript, the value 0 of Count—0 [1] is incremented to 1.
- CPU—1 reads the value 5 of OrdSet [5], reads the value 5 of the read value as a subscript, reads the value 2 of VNo [5], uses this value 2 as a subscript, and count— 1 [2 ] Value 0 is incremented to 1.
- CPU-0 reads the value 1 of Ord Set [l], reads the value 1 of VNo [1] with the read value 1 as a subscript, and this value.
- Count—0 [3] value 0 is incremented to 1 with 3 as a subscript.
- CPU-1, CPU-2 and CPU-3 As shown in Fig. 8A and B and Fig. 9A, each processor reads each element of the array OrdSet that its processor is in charge of, reads the element of the array VNo using that element as a subscript, and then reads that element. The corresponding Count array element is incremented with the element as a subscript.
- FIG. 9B a count-up result as shown in FIG. 9B is obtained.
- B array 0111 ⁇ —0 element 0111t 0 [i] is the age corresponding to each record in the range OrdSet OrdSet [0] force OrdSet [4] Represents the number of occurrences of item value number i. For example
- Count—0 [0] indicates that the number of occurrences of the item value number 0 in the CPU — 0 range is one, and Count — 3 [1] is the item in the CPU — 3 range Number of occurrences of value number 1 Represents power ⁇ times.
- FIGS. 10A and 10B are explanatory diagrams of the cumulative number steps 503 and 504 of the parallel sorting method.
- the number is accumulated in ascending order of the item value numbers corresponding to ascending sort.
- CPU—0 is responsible for the cumulative number ⁇ of the first and second rows (ie, item value numbers 0 and 1) of the array Count
- CP 11 1 to J? 11 3 is in charge of the cumulative number of the third to fifth rows (ie, item value numbers 3 to 5) of the array Count.
- accumulation is done in the horizontal direction of the array count (ie, the line with the same subscript), and then the previous line is added to the subsequent line.
- the total number of totals is determined by adding to. Side Note that the cumulative number of directions can be executed in parallel by each CPU.
- FIG. 10B shows the order of the cumulative number ⁇ in a line in the vertical direction.
- the row (l) Count-0: 0 represents that the count value 1 of the first element Count-0 [0] of the array Count-0 is converted to the cumulative number 0. That is,
- FIGS. 11A and 11B to FIGS. 13A and 13B are explanatory diagrams of a transfer step 505 for storing record numbers in a further record number array.
- each CPU reads the record number within its range from the record number array OrdSet, and then reads the item value number from the pointer array VNo using the record number as a subscript.
- CPU—0 reads the value 0 of OrdSet [0] (ie, record number 0), then reads the value 1 of VNo [0], and then associates Is Read Count—0 [1] value 5 of Count array, set record number 0 to OrdSet [5], and increment Count—0 [1] value to 6.
- This record number transfer process proceeds in the same manner as sub-step 2 in FIG. 11B, sub-steps 3 and 4 in FIGS. 12A and B, and sub-step 5 in FIG. 13A.
- a further record number array OrdSet ' is obtained.
- FIGS. 14A to 14C and FIGS. 15A and 15B are diagrams showing the results of applying the parallel sorting method according to the embodiment of the present invention to the data structure shown in FIG. 4B.
- ascending sort was performed on the age, so the record number array OrdSet 'in the result contains records with age item values of 16, 18, 20, 21, and 23 in order of age. You can see that they are lined up. Also, the order of records with the same age is stored in the order in the original record number array OrdSet!
- FIGS. 16A and 16B are explanatory diagrams of the cumulative number step of the parallel (descending order) sort method according to the embodiment of the present invention.
- the cumulative number ⁇ is given priority in the horizontal direction of the array Count (that is, the row with the same subscript), and then the cumulative number of the rear row is set to the cumulative number of the preceding row. By adding to the number, the total cumulative number is determined. Note that the cumulative number in the horizontal direction can be executed in parallel by each CPU.
- a single processor is selected for which the CPU performs the calculation of the cumulative number, and that processor is accumulated independently. Counting may be performed.
- Fig. 16B shows the order of the cumulative number ⁇ in a vertical row. In FIG. 16B, for example, the row of (1) Count—0: 4 represents that the count value 1 of the first element Count—0 [4] of the array Count—0 is converted to the cumulative number 0.
- FIGS. 17A and 17B to FIGS. 19A and 19B are explanatory diagrams of the transfer step 505 of the parallel sort method in descending order.
- each CPU reads the record number within the range that it is responsible for from the record number array OrdSet, then reads the item value number from the pointer array VNo using that record number as a subscript, and then this item.
- Using the value number as a subscript read the accumulated number from the counted count array associated with the own processor, point to the read accumulated number, and add the record number to the record number array OrdSet '. And increment the cumulative value of the Count array by one.
- FIGS. 20A and 20B and FIGS. 21A to 21C are diagrams showing the results of applying the descending order parallel sorting method, which is useful for the embodiment of the present invention, to the data structure shown in FIG. 4B.
- the record number array OrdSet 'in the result has records with age item values of 23, 21, 20, 18, and 16 in order of age. You can see that In addition, the order of records with the same age is stored in the original record number array OrdSet!
- each CPU is assigned a range of target item value numbers. Item value numbers 0 and 1 are assigned to CPU-0, item value number 2 is assigned to CPU-1, item value number 3 is assigned to CPU-2, and item value number 4 is assigned to CPU-3. Therefore, if the elements of the Count array are represented in the form of Count [i] [j] as described above (i is the number of the CPU responsible for the power count, j is the item value number), the cumulative number of each CPU ⁇ 's responsibility
- each CPU—i calculates a subtotal Sum [i] of the counts in the range
- each CPU-i converts the Count value into a cumulative number in the assigned range, and adds the calculated total number of subtotals Aggr_sum [i] to the cumulative number of the Count value, thereby finally Accumulate the total number of counts.
- This calculation of Count ' is also parallel processing. In this way: • CPU — 0 responsibility range (item value numbers 0 and 1)
- Parallel sorting based on the above counting sort can be combined with the idea of radix sort.
- the item value numbers are expressed in radix and the above parallel sorting is performed for each digit to perform efficient sorting. It is possible to realize.
- the following describes such a multi-stage parallel sorting method.
- the multi-stage parallel sort according to the present embodiment completes the final sort by performing the sort process for the current digit in order, starting with the least significant digit power, and finally performing the sort process for the most significant digit. To do.
- An example of the multi-stage parallel sorting method according to the embodiment of the present invention also uses the data structure of Fig. 4B used in the above example of the parallel sorting method.
- the number of CPUs is four, and an example in which all CPUs operate in parallel is considered. It should be noted that the total number of CPUs in the system and the number of CPUs operating in parallel are not limited to this example.
- the item value number VNo regarding age can take a value from 0 to 4.
- the item value number is 2 in the lower and upper digits. It is broken down into digits. Specifically, the modulo (4) value of the item value number is the lower digit value, and the quotient obtained by dividing the item value number by 4 is the upper digit value.
- FIG. 22 is a flowchart of the multi-stage parallel sorting method that works according to the embodiment of the present invention. is there.
- the multi-stage parallel sorting method is composed of five steps from step 2201 to step 2205.
- the lowest digit of (in this example, the modulo (4) value of the item value number) is set to the current digit.
- Step 2202 The current record number array is divided and assigned to four processors.
- Step 2203 In each of the four processors, the number of occurrences of the current digit value of the item value number corresponding to the record included in the allocated record number array portion is counted.
- Step 2204 The range of the current digit value of the item value number is divided and assigned to four processors.
- Step 2205 In each of the four processors, in the order of the current digit value of the item value number, within the range where the current digit value of the item value number matches, the record number array According to the order of the parts, the number of occurrences of the current digit value of the assigned item value number is converted into a cumulative number.
- Step 2206 In each of the four processors, a pointer to the total number of occurrences of the current digit value of the item value number corresponding to the record included in the allocated record number array part As a result, the record number included in the allocated record number array is stored in the further record number array.
- Step 2207 Determine whether or not the sorting process has been performed up to the most significant digit of the item value number expressed in radix. If the sorting is performed up to the most significant digit, the multi-stage parallel sorting process is terminated. .
- Step 2208 If an unprocessed digit remains, set that digit to the current digit, set the further record number array as the current record number array, and return to Step 2202.
- the sort processing from step 22002 to step 2206 is the same processing as the parallel sort method of the present invention described above, and the item value Only that the value of the current digit of the field value number is used instead of the number Are different.
- the data shown in Fig. 4B is sorted in ascending order of age using four CPUs.
- a sorting process is set for the value of module 4 (MOD 4) of the age item value number (lower digit value).
- MOD 4 module 4
- DIV 4 quotient
- initial step 2201 an array similar to the Count array shown in FIG. 6 is prepared.
- the array in this example is an array that counts the number of occurrences of the value of the current digit of the item value number.
- FIGS. 23A and B to FIGS. 25A and 25B are explanatory diagrams of the counting step 2203 of the first stage of the multi-stage parallel sorting method.
- CPU-0 reads the value 0 of OrdSet [0]
- the value 1 of modulo 4 (MOD4) is subscripted
- the value 0 of Count—0 [1] is incremented to 1.
- CPU—1 reads the value 5 of OrdSet [5], reads this value 5 as a subscript, reads the value 2 of VNo [5], subtracts the value 2 of MOD4 of this value 2, and count — 1 Increment the value 0 of [2] to 1. Thereafter, by executing sub-step 2 in FIG. 23B, sub-step 3 in FIG. 24A, sub-step 4 in FIG. 24B and sub-step 5 in FIG. 25A, a count-up result as shown in FIG. 25B is obtained.
- Fig. 23A, B to Fig. 25A, B Array Count—0 element Count—0 [i] is the same?
- 11 0 represents the number of occurrences of the value i in the lower digit of the item value number of the age corresponding to each record in the range of 0 (13 et [0] force OrdSet [4] in the array 0 361; in charge of 0
- Count—0 [0] indicates that the value 0 of the lower digit of the item value number in the range assigned to CPU—0 is 0, and Count 3 [1] indicates CPU—3. This means that the number of occurrences of the value 1 of the lower digit of the item value number in the assigned range of is 2 times.
- FIGS. 26A and 26B are explanatory diagrams of the cumulative number step in the first stage of the multi-stage parallel sorting method.
- the cumulative number is calculated in ascending order of the value of the lower digit of the item value number in correspondence with the ascending sort.
- CPU — 0 is the first row of the array Count (ie, the value 0 in the lower digit of the item value number) )
- CPU-1 to CPU-3 are responsible for accumulating the 2nd to 4th rows of the array Count (that is, values 1 to 3 in the lower digits of the item value number), respectively. To do. As shown in Fig.
- the cumulative number ⁇ is given priority in the horizontal direction of the array Count (that is, the row with the same subscript), and then the cumulative number of the preceding row is added to the subsequent row. By adding to the number, the total cumulative number is determined. As described above, the cumulative number in the horizontal direction may be handled by a single CPU that can execute each CPU in parallel.
- FIGS. 27A and B to FIGS. 29A and 29B are explanatory diagrams of a transfer step of storing record numbers in a further record number array in the first stage of the multistage parallel sort method.
- each CPU reads the record number within the range for which it is responsible from the record number array OrdSet, and then uses the record number as a subscript to insert the value of the lower digit of the item value number from the pointer array VNo.
- FIG. 29B shows the record number array OrdSet 'obtained in the first stage as a result of such a transfer step.
- FIG. 30 shows the assignment of the current record number array OrdSet to four CPUs in step 2202 of the second stage of the multi-stage parallel sorting method according to the embodiment of the present invention. It is a figure which shows the state which prepared the Count arrangement
- FIGS. 31A and B to FIGS. 33A and B are explanatory diagrams of the counting step of the second stage of the multi-stage parallel sorting method.
- CPU-0 reads the value 2 of OrdSet '[0]
- the value 1 of the quotient (DIV4) divided by 4 is subscripted and the value 0 of Count—0 [1] is incremented to 1.
- CPU-1 reads the value 12 of OrdSet '[5], reads this value 12 as a subscript, reads the value 4 of VNo [12], and subtracts the value 1 of DIV4 of this value 4 as a subscript.
- Count— 1 [1] value 0 is incremented to 1.
- the sub-step 2 in Fig. 31B and the sub-step in Fig. By executing step 3, sub-step 4 of FIG. 32B and sub-step 5 of FIG. 33A, a second-stage count-up result as shown in FIG. 33B is obtained.
- the element Count—0 [i] of the array Count—0 is the number of each OrdSet '[0] to OrdSet [4] in the array OrdSet that the CPU—0 is responsible for. This indicates the number of occurrences of the value i in the upper digit of the age item value number corresponding to the record.
- Count—0 [0] indicates that the number of occurrences of the value 0 in the upper digit of the item value number in the CPU_0's assigned range is 4 and Count—3 [1] is CPU-3 This means that the number of occurrences of the value 1 of the upper digit of the item value number in the assigned range is 0.
- FIG. 34 is an explanatory diagram of the second-stage cumulative number step in the multi-stage parallel sorting method.
- the cumulative number is calculated in ascending order of the value of the upper digit of the item value number. Since the number of values in the upper digits of the item value number has been reduced to 2 due to the multi-level key, in this example, for example, CPU-0 is responsible for the cumulative number of all values.
- CPU—0 is Count [0] [0], Count [l] [0], Count [2] [0], Count [3] [0], Count [0] Cumulative counting is performed in the order of [l], Count [l] [l], Count [2] [l], and Count [3] [l].
- CPU-0 and CPU-1 are assigned to the two CPUs, 0 and 1 in the upper digits of the item value number, and the two CPUs perform the cumulative number calculation. Also good.
- FIGS. 35A and B to FIGS. 37A and B are explanatory diagrams of a transfer step of storing record numbers in a further record number array in the second stage of the multistage parallel sort method.
- each CPU reads the record number within the range for which it is responsible from the record number array OrdSet, and then uses the record number as a subscript to set the value of the upper digit of the item value number from the pointer array VNo.
- the accumulated number associated with the processor is read from the Count array column, and the read accumulated number is pointed to Then, the record number is stored in the record number array OrdSet "and the cumulative value of the Count array is incremented by 1.
- Figure 37B shows the record number array OrdSet obtained in the second stage as a result of such a transfer step. "Represents.
- the multi-stage parallel sorting method of this embodiment is composed of two stages of the lower digit and the upper digit of the item value number, no further sorting is performed. Therefore, the second stage The record number array OrdSet "obtained at the floor is the result of sorting the first record number array OrdSet in ascending order with respect to age.
- FIGS. 38A to 38C and FIGS. 39A and B are diagrams showing the results of applying the ascending multi-stage parallel sorting method, which is useful for the embodiment of the present invention, to the data structure shown in FIG. 4B.
- ascending order was sorted for age, so the records with the age item values of 16, 18, 20, 21, and 23 are listed in order of age in the resulting record number array OrdSet.
- the order of the records with the same age is stored in the original record number array OrdSet, and the results are shown in Figs. This is consistent with the result of applying the ascending parallel sort method, which is useful for the embodiment of the present invention, to the data structure of FIG. 4B.
- the multi-stage parallel sort of the present invention operates similarly in descending sort.
- the cumulative number ⁇ operation in each stage of the multi-stage parallel sort may be processed in parallel by a plurality of processors, or at least one, preferably one.
- the processor may process alone.
- the above multi-stage parallel sort completes the final sort by sorting the current digit in order, starting with the least significant digit, and finally sorting the most significant digit. .
- a data structure as shown in Fig. 40 is used.
- the number of CPUs is one.
- the total number of records is 20 from record number 0 to record number 19, and the field value number is 9 from 0 to 8. That is, there are nine actual age values: 15, 16, 18, 19, 20, 21, 23, 25, and 28.
- the item value number VNo relating to age can take a value from 0 to 8.
- the value of Euro (4) is the value of the lower digit.
- the upper digit of the item value number can take three values, 0, 1, and 2.
- the lower digit can take four values, 0, 1, 2, and 3.
- Count-1 for counting the number of occurrences of the upper digits 0, 1, and 2 is prepared, and the element is initialized with 0.
- Count-l [0] is an area for counting the number of records in which the value of the upper digit of the item value number is 0.
- this first-stage count-up process allows the number of records with the value power ⁇ of the upper digit of the item value number to be 12 and the value of the upper digit is 1.
- the number of records is 7, and the number of records with the value S 2 in the upper digit is 1. Further, as shown in FIG. 41D, this count value is accumulated.
- the record number array OrdSet is converted into a further record number array OrdSet ′ using the array Aggr-1 in which the cumulative number of occurrences of the value of the upper digit of the item value number is entered.
- FIGS. 42A and 42B are explanatory diagrams of record number transfer processing in such a multi-stage sort.
- FIG. 42A and 42B are explanatory diagrams of record number transfer processing in such a multi-stage sort.
- FIG. 42A shows transfer of OrdSet [0]
- FIG. 42B shows transfer of OrdSet [19].
- Figure 43 shows the record number array OrdSet 'as a result of the first-stage record number transfer, and the range in which the upper digit values are distributed. For example, records whose upper digit value is 0 are distributed in the range from OrdSet '[0] to OrdSet' [11] (interval 0) in the record number array OrdSet ', and the upper digit value is 1. The records are distributed in the range (Section 1) from OrdSet '[12] to Ord Set' [18] in the record number array OrdSet '.
- Records with the upper digit value 2 are records in the record number array OrdSet' OrdSet ' [19] (Section 2).
- the record numbers are sorted by the value of the lower digit of the item value number within each section. For example, section 1 of OrdSet 'is transferred to section 1 corresponding to OrdSet ". Since the section is already defined by the upper digit in the second stage sort, the record number is transferred outside the section. There is nothing.
- FIG. 44 is a diagram showing an initial state of the second stage of the multistage sorting.
- section 1 of OrdSet is explained.
- Count—2 is an array for counting the number of occurrences of the lower digit value (0, 1, 2, 3) of the item value number in section 1.
- FIGS. 45A to 45C are explanatory diagrams of the second stage count-up and the cumulative number ⁇ in the multi-stage sort. Counting up sequentially starting from Figure 45A yields a countup sequence as shown in Figure 45B. This count up sequence is counted as shown in FIG. 45C.
- the computer system 10 is caused to execute a program that rearranges the record order according to the item value of a predetermined item of the record. More specifically, in the present embodiment, as described below, the program causes each CPU to execute the processing steps described above or to realize the functions described above.
- the computer system 10 is loaded with an OS (for example, Linux (registered trademark)). Initially, a certain CPU (eg, CPU12-1) force program is loaded into memory (eg, shared memory 14) under OS control. When loaded into S-memory, if each of CPU12-1, 12-2,..., 12-p should execute the process, each CPU is controlled under OS control. Implement the specified function.
- OS for example, Linux (registered trademark)
- each CPU reads a predetermined processing step in the program stored in the shared memory 14 and executes the processing step.
- a specific CPU should perform processing, other specific functions are realized on the specific CPU under the control of the OS. That is, only a specific CPU reads another predetermined processing step in the program stored in the shared memory 14, and executes the other predetermined processing step.
- the storage location of the program executed by each CPU is not limited to the shared memory 14, but may be a local memory (not shown) associated with each CPU.
- the program realizes a predetermined function in each CPU and, if necessary, provides a specific CPU with another predetermined function. Can be realized.
- FIG. 1 is a schematic diagram of a computer system according to an embodiment of the present invention.
- FIG. 2 is a diagram showing an example of tabular data for explaining the data management mechanism.
- FIG. 3 is an explanatory diagram of a data management mechanism that works according to the embodiment of the present invention.
- FIGS. 4A and 4B are explanatory diagrams of a data structure to be sorted, which is useful in the embodiment of the present invention.
- FIG. 5 is a flowchart of a parallel sorting method according to an embodiment of the present invention.
- FIG. 6 is an explanatory diagram of the initial step of the parallel sorting method that is effective in the embodiment of the present invention.
- FIGS. 7A and 7B show count-up states of a parallel sorting method that is effective in the embodiment of the present invention. It is explanatory drawing (the 1) of a group.
- FIGS. 8A and 8B are explanatory diagrams (part 2) of the count-up step of the parallel sorting method that is effective in the embodiment of the present invention.
- FIGS. 9A and 9B are explanatory diagrams (part 3) of the count-up step of the parallel sorting method that is effective in the embodiment of the present invention.
- FIG. 10A and FIG. 10B are explanatory diagrams of the total number of steps in the ascending parallel sort method useful for the embodiment of the present invention.
- FIGS. 11A and 11B are explanatory diagrams (part 1) of the transfer step of the ascending parallel sort method that is useful for the embodiment of the present invention.
- FIGS. 12A and 12B are explanatory diagrams (part 2) of the transfer step of the ascending parallel sort method useful for the embodiment of the present invention.
- FIGS. 13A and 13B are explanatory diagrams (part 3) of the transfer step of the ascending parallel sort method useful for the embodiment of the present invention.
- FIGS. 14A to 14C are diagrams (part 1) showing the results of applying the ascending parallel sort method according to the embodiment of the present invention to the data structure shown in FIG. 4B.
- FIGS. 15A and 15B are diagrams (part 2) showing the result of applying the ascending parallel sort method according to the embodiment of the present invention to the data structure shown in FIG. 4B.
- FIGS. 16A and 16B are explanatory diagrams of the total number of steps in the descending order parallel sorting method useful for the embodiment of the present invention.
- FIGS. 17A and 17B are explanatory diagrams (part 1) of the transfer step of the descending order parallel sort method that is useful in the embodiment of the present invention.
- FIGS. 18A and 18B are explanatory diagrams (part 2) of the transfer step of the descending order parallel sort method that is useful in the embodiment of the present invention.
- FIGS. 19A and 19B are explanatory diagrams (part 3) of the transfer step of the descending order parallel sort method that is useful in the embodiment of the present invention.
- FIGS. 20A and 20B are diagrams (part 1) showing the results of applying the descending order parallel sorting method according to the embodiment of the present invention to the data structure shown in FIG. 4B.
- FIGS. 21A to 21C show the data structure shown in FIG. 4B according to the embodiment of the present invention. It is the figure (the 2) which shows the result which applies the parallel descending sort method which is powerful.
- FIG. 22 is a flowchart of a multi-stage parallel sorting method according to the embodiment of the present invention.
- FIGS. 23A and 23B are explanatory diagrams (part 1) of the count-up step of the first stage of the multi-stage parallel sorting method that is useful in the embodiment of the present invention.
- FIGS. 24A and 24B are explanatory diagrams (part 2) of the count-up step in the first stage of the multi-stage parallel sorting method that is useful in the embodiment of the present invention.
- FIGS. 25A and 25B are explanatory diagrams (part 3) of the count-up step in the first stage of the multi-stage parallel sorting method that is useful in the embodiment of the present invention.
- FIG. 26A and FIG. 26B are explanatory diagrams of the first-stage accumulating step of the ascending order multi-stage parallel sorting method that is useful for the embodiment of the present invention.
- FIGS. 27A and 27B are explanatory diagrams (part 1) of the transfer step in the first stage of the ascending order multi-stage parallel sort method useful for the embodiment of the present invention.
- FIGS. 28A and 28B are explanatory diagrams (part 2) of the transfer step in the first stage of the ascending multi-stage parallel sort method that is useful for the embodiment of the present invention.
- FIGS. 29A and 29B are explanatory diagrams (part 3) of the transfer step of the first stage of the ascending order multi-stage parallel sort method useful for the embodiment of the present invention.
- FIG. 30 is an explanatory diagram of the initial step of the second stage of the multi-stage parallel sorting method that is useful in the embodiment of the present invention.
- FIGS. 31A and 31B are explanatory diagrams (part 1) of the count-up step in the second stage of the multi-stage parallel sorting method that is useful in the embodiment of the present invention.
- FIGS. 32A and 32B are explanatory diagrams (part 2) of the count-up step in the second stage of the multi-stage parallel sorting method that is useful in the embodiment of the present invention.
- FIGS. 33A and 33B are explanatory diagrams (part 3) of the count-up step in the second stage of the multi-stage parallel sorting method that is useful in the embodiment of the present invention.
- FIG. 34 is an explanatory diagram of the second-stage accumulating step in the ascending multi-stage parallel sorting method that is useful in the embodiment of the present invention.
- FIGS. 35A and 35B show the ascending order of the multi-stage parallel sorting method that is useful in the embodiment of the present invention. It is explanatory drawing (the 1) of a two-step transfer step.
- FIGS. 36A and 36B show the ascending order of the multi-stage parallel sorting method that is useful for the embodiment of the present invention.
- FIGS. 37A and 37B are explanatory diagrams (part 3) of the second-stage transfer step of the ascending multi-stage parallel sort method useful for the embodiment of the present invention.
- FIGS. 38A to C are views (No. 1) showing the results of applying the ascending multi-stage parallel sort method according to the embodiment of the present invention to the data structure shown in FIG. 4B. .
- FIGS. 39A and 39B are diagrams (part 2) showing the results of applying the ascending multi-stage parallel sorting method according to the embodiment of the present invention to the data structure shown in FIG. 4B. is there.
- FIG. 40 is a data structure diagram for explaining multi-step sorting.
- FIGS. 41A to 41D are explanatory diagrams of the first stage count-up and the cumulative number ⁇ in the multi-stage sort.
- FIGS. 42A and B are explanatory diagrams of the transfer of record numbers in the first stage of multi-stage sorting.
- Figure 43 is an explanatory diagram of the result of record number transfer in the first stage of multi-stage sorting.
- Figure 44 shows the initial state of the second stage of multi-stage sorting.
- FIGS. 45A to 45C are explanatory diagrams of the second stage count-up and the cumulative number of keys in the multi-stage sort.
- FIGS. 46A and 46B are explanatory diagrams of the second-stage record number transfer in the multi-stage sort. Explanation of symbols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
Claims
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06756416A EP1901183A4 (en) | 2005-05-24 | 2006-05-22 | MULTIPROCESSOR SYSTEM AND INFORMATION PROCESSING METHOD |
US11/883,264 US7801903B2 (en) | 2005-05-24 | 2006-05-22 | Shared-memory multiprocessor system and method for processing information |
JP2007517805A JP4339381B2 (ja) | 2005-05-24 | 2006-05-22 | 共有メモリ型マルチプロセッサシステム及びその情報処理方法 |
CN2006800034124A CN101133414B (zh) | 2005-05-24 | 2006-05-22 | 多处理器系统及其信息处理方法 |
CA002595858A CA2595858A1 (en) | 2005-05-24 | 2006-05-22 | Multiprocessor system, and its information processing method |
KR1020077017364A KR101196566B1 (ko) | 2005-05-24 | 2006-05-22 | 멀티 프로세서 시스템 및 그 정보처리방법 |
US12/856,429 US8065337B2 (en) | 2005-05-24 | 2010-08-13 | Shared-memory multiprocessor system and method for processing information |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005150604 | 2005-05-24 | ||
JP2005-150604 | 2005-05-24 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/883,264 A-371-Of-International US7801903B2 (en) | 2005-05-24 | 2006-05-22 | Shared-memory multiprocessor system and method for processing information |
US12/856,429 Division US8065337B2 (en) | 2005-05-24 | 2010-08-13 | Shared-memory multiprocessor system and method for processing information |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2006126467A1 true WO2006126467A1 (ja) | 2006-11-30 |
Family
ID=37451891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2006/310110 WO2006126467A1 (ja) | 2005-05-24 | 2006-05-22 | マルチプロセッサシステム及びその情報処理方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US7801903B2 (ja) |
EP (1) | EP1901183A4 (ja) |
JP (1) | JP4339381B2 (ja) |
KR (1) | KR101196566B1 (ja) |
CN (1) | CN101133414B (ja) |
CA (1) | CA2595858A1 (ja) |
WO (1) | WO2006126467A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008155852A1 (ja) * | 2007-06-21 | 2008-12-24 | Turbo Data Laboratories Inc. | メモリ共有型並列処理システムにおいて表形式データを集計する方法及び装置 |
WO2009028050A1 (ja) * | 2007-08-28 | 2009-03-05 | Turbo Data Laboratories, Inc. | 表形式データを操作するマルチコア対応データ処理方法、マルチコア型処理装置、及び、プログラム |
WO2009044486A1 (ja) * | 2007-10-05 | 2009-04-09 | Turbo Data Laboratories, Inc. | 表形式データをソートする方法、マルチコア型装置、及び、プログラム |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007020849A1 (ja) * | 2005-08-15 | 2007-02-22 | Turbo Data Laboratories Inc. | 共有メモリ型マルチプロセッサシステム及びその情報処理方法 |
US8438472B2 (en) | 2009-01-02 | 2013-05-07 | Apple Inc. | Efficient data structures for parsing and analyzing a document |
US8959094B2 (en) * | 2010-05-28 | 2015-02-17 | Oracle International Corporation | Early return of partial sort results in a database system |
US20120259869A1 (en) * | 2011-04-07 | 2012-10-11 | Infosys Technologies, Ltd. | System and method for implementing a window sorting mechanism |
GB2500863A (en) * | 2012-01-20 | 2013-10-09 | Data Re Ltd | A method of indexing a database |
KR101196145B1 (ko) | 2012-02-21 | 2012-10-30 | 인하대학교 산학협력단 | Cuda를 이용한 최장공통비상위문자열 그래프 모델의 병렬 생성 방법 |
KR101993258B1 (ko) | 2012-11-22 | 2019-09-27 | 삼성전자주식회사 | 레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩 |
US9177006B2 (en) * | 2012-12-29 | 2015-11-03 | International Business Machines Corporation | Radix sort with read-only key |
KR101770234B1 (ko) * | 2013-10-03 | 2017-09-05 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 소프트웨어 프로그램의 연산 블록을 멀티-프로세서 시스템의 코어에 할당하는 방법 및 시스템 |
CN104657388A (zh) * | 2013-11-22 | 2015-05-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置 |
US9628107B2 (en) | 2014-04-07 | 2017-04-18 | International Business Machines Corporation | Compression of floating-point data by identifying a previous loss of precision |
US9959299B2 (en) | 2014-12-02 | 2018-05-01 | International Business Machines Corporation | Compression-aware partial sort of streaming columnar data |
US10909078B2 (en) | 2015-02-25 | 2021-02-02 | International Business Machines Corporation | Query predicate evaluation and computation for hierarchically compressed data |
US10296612B2 (en) | 2015-09-29 | 2019-05-21 | At&T Mobility Ii Llc | Sorting system |
US10416959B2 (en) | 2015-10-27 | 2019-09-17 | At&T Mobility Ii Llc | Analog sorter |
US10261832B2 (en) * | 2015-12-02 | 2019-04-16 | At&T Mobility Ii Llc | Sorting apparatus |
US10496370B2 (en) | 2015-12-02 | 2019-12-03 | At&T Intellectual Property I, L.P. | Adaptive alphanumeric sorting apparatus |
US10216478B2 (en) | 2016-03-30 | 2019-02-26 | International Business Machines Corporation | Increasing radix sorting efficiency utilizing a crossover point |
US9934287B1 (en) | 2017-07-25 | 2018-04-03 | Capital One Services, Llc | Systems and methods for expedited large file processing |
CN108052309A (zh) * | 2017-12-26 | 2018-05-18 | 杭州迪普科技股份有限公司 | 一种对象排序方法及装置 |
CN109857573B (zh) * | 2018-12-29 | 2021-03-05 | 深圳云天励飞技术有限公司 | 一种数据共享方法、装置、设备及系统 |
US11281427B2 (en) * | 2019-04-24 | 2022-03-22 | Ido Dov Cohen | Fast sort engine |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05242049A (ja) * | 1991-07-10 | 1993-09-21 | Hitachi Ltd | 分散データベースのソート方法およびアクセス方法 |
WO2004092948A1 (ja) * | 2003-04-16 | 2004-10-28 | Turbo Data Lab Inc | 情報処理システムおよび情報処理方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69232425T2 (de) | 1991-07-10 | 2002-10-10 | Hitachi Ltd | Sortierverfahren in einer verteilten Datenbank und Zugangsverfahren dazu |
US5765146A (en) * | 1993-11-04 | 1998-06-09 | International Business Machines Corporation | Method of performing a parallel relational database query in a multiprocessor environment |
WO2000010103A1 (fr) | 1998-08-11 | 2000-02-24 | Shinji Furusho | Procede et dispositif de recuperation, de stockage et de triage de donnees formatees en tableaux |
JP2001147800A (ja) * | 1999-11-22 | 2001-05-29 | Taabo Data Laboratory Kk | 情報処理システム、並びに、この情報処理システムを利用したソート方法、コンパイル方法およびジョイン方法 |
JP2004522235A (ja) * | 2001-07-18 | 2004-07-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 多重プロセッサデバイスにおける不揮発性メモリ装置と方法 |
JP4620593B2 (ja) * | 2003-10-24 | 2011-01-26 | 株式会社ターボデータラボラトリー | 情報処理システムおよび情報処理方法 |
WO2007020849A1 (ja) * | 2005-08-15 | 2007-02-22 | Turbo Data Laboratories Inc. | 共有メモリ型マルチプロセッサシステム及びその情報処理方法 |
-
2006
- 2006-05-22 JP JP2007517805A patent/JP4339381B2/ja active Active
- 2006-05-22 KR KR1020077017364A patent/KR101196566B1/ko active IP Right Grant
- 2006-05-22 EP EP06756416A patent/EP1901183A4/en not_active Withdrawn
- 2006-05-22 WO PCT/JP2006/310110 patent/WO2006126467A1/ja active Application Filing
- 2006-05-22 US US11/883,264 patent/US7801903B2/en active Active
- 2006-05-22 CN CN2006800034124A patent/CN101133414B/zh active Active
- 2006-05-22 CA CA002595858A patent/CA2595858A1/en not_active Abandoned
-
2010
- 2010-08-13 US US12/856,429 patent/US8065337B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05242049A (ja) * | 1991-07-10 | 1993-09-21 | Hitachi Ltd | 分散データベースのソート方法およびアクセス方法 |
WO2004092948A1 (ja) * | 2003-04-16 | 2004-10-28 | Turbo Data Lab Inc | 情報処理システムおよび情報処理方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008155852A1 (ja) * | 2007-06-21 | 2008-12-24 | Turbo Data Laboratories Inc. | メモリ共有型並列処理システムにおいて表形式データを集計する方法及び装置 |
JP4881435B2 (ja) * | 2007-06-21 | 2012-02-22 | 株式会社ターボデータラボラトリー | メモリ共有型並列処理システムにおいて表形式データを集計する方法及び装置 |
WO2009028050A1 (ja) * | 2007-08-28 | 2009-03-05 | Turbo Data Laboratories, Inc. | 表形式データを操作するマルチコア対応データ処理方法、マルチコア型処理装置、及び、プログラム |
JP5208117B2 (ja) * | 2007-08-28 | 2013-06-12 | 株式会社ターボデータラボラトリー | 表形式データを操作するマルチコア対応データ処理方法、マルチコア型処理装置、及び、プログラム |
WO2009044486A1 (ja) * | 2007-10-05 | 2009-04-09 | Turbo Data Laboratories, Inc. | 表形式データをソートする方法、マルチコア型装置、及び、プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20080215584A1 (en) | 2008-09-04 |
CA2595858A1 (en) | 2006-11-30 |
EP1901183A4 (en) | 2010-01-13 |
US8065337B2 (en) | 2011-11-22 |
CN101133414B (zh) | 2011-05-04 |
JP4339381B2 (ja) | 2009-10-07 |
US7801903B2 (en) | 2010-09-21 |
US20100312802A1 (en) | 2010-12-09 |
KR101196566B1 (ko) | 2012-11-01 |
CN101133414A (zh) | 2008-02-27 |
KR20080014726A (ko) | 2008-02-14 |
EP1901183A1 (en) | 2008-03-19 |
JPWO2006126467A1 (ja) | 2008-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2006126467A1 (ja) | マルチプロセッサシステム及びその情報処理方法 | |
CN110826719B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
US9240237B2 (en) | Semiconductor device and method of writing/reading entry address into/from semiconductor device | |
JP4511469B2 (ja) | 情報処理方法及び情報処理システム | |
WO2005106713A1 (ja) | 情報処理方法及び情報処理システム | |
CN110990299B (zh) | 非规整组相联cache组地址映射方法 | |
JP4881435B2 (ja) | メモリ共有型並列処理システムにおいて表形式データを集計する方法及び装置 | |
CN105608056A (zh) | 一种基于Flink的大规模矩阵并行化的计算方法 | |
JP4620593B2 (ja) | 情報処理システムおよび情報処理方法 | |
JPWO2009044486A1 (ja) | 表形式データをソートする方法、マルチコア型装置、及び、プログラム | |
WO2010013320A1 (ja) | 表形式データを操作する方法、分散メモリ型マルチプロセッサ、及び、プログラム | |
JP4772506B2 (ja) | 情報処理方法、情報処理システムおよびプログラム | |
Noon et al. | Optimization query processing for multi-tiered persistent storage | |
JP4036257B2 (ja) | 共有ライブラリ生成方法およびシステム | |
WO2004092948A1 (ja) | 情報処理システムおよび情報処理方法 | |
CN101120309A (zh) | 加法器及其合成装置、合成方法、合成程序、合成程序记录媒体 | |
Shao et al. | Speeding up model building for ECGA on CUDA platform | |
JPWO2006112430A1 (ja) | 情報処理システムおよび情報処理方法 | |
JP5008720B2 (ja) | メモリ間接参照をメモリ直接参照に変換する方法及び装置 | |
Rhein | Performance and Hardware Requirements of Parallel Addition Algorithms for Optical Implementation Using SEEDs | |
Trahan et al. | Scaling multiple addition and prefix sums on the reconfigurable mesh | |
JPS608973A (ja) | 最短路探索装置 | |
JPS63177616A (ja) | 計数方法および装置 | |
CN85105498A (zh) | 检索关联矩阵的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200680003412.4 Country of ref document: CN |
|
DPE2 | Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2007517805 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2006756416 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2595858 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: 11883264 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020077017364 Country of ref document: KR |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
NENP | Non-entry into the national phase |
Ref country code: RU |