WO2018116483A1 - Calcul utilisant des valeurs numériques représentées dans un ordinateur en notation de position non décimale ou supérieure - Google Patents

Calcul utilisant des valeurs numériques représentées dans un ordinateur en notation de position non décimale ou supérieure Download PDF

Info

Publication number
WO2018116483A1
WO2018116483A1 PCT/JP2016/089228 JP2016089228W WO2018116483A1 WO 2018116483 A1 WO2018116483 A1 WO 2018116483A1 JP 2016089228 W JP2016089228 W JP 2016089228W WO 2018116483 A1 WO2018116483 A1 WO 2018116483A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
calculation
numerical
numerical calculation
byte
Prior art date
Application number
PCT/JP2016/089228
Other languages
English (en)
Japanese (ja)
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 和己 阿部
Priority to PCT/JP2016/089228 priority Critical patent/WO2018116483A1/fr
Publication of WO2018116483A1 publication Critical patent/WO2018116483A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/49Computations with a radix, other than binary, 8, 16 or decimal, e.g. ternary, negative or imaginary radices, mixed radix non-linear PCM

Definitions

  • the present invention relates to a numerical calculation using an array structure. More specifically, an accurate numerical calculation for a larger number is realized at a higher speed by using a numerical value expressed inside the computer by an arbitrary scale method.
  • the current hardware has higher performance than when the prior art was invented.
  • the upper limit of the number that can be handled Replace the constraint from “memory capacity” to “capacity of storage medium other than memory”.
  • the upper limit of the number that can be handled by the increased capacity increases.
  • it becomes easy to take in parallel processing because a margin arises in memory.
  • the calculation processing at the hardware level does not increase the required time by the number of bits handled.
  • the number that can be expressed doubles every time the number of bits to be handled increases by one.
  • This speeding-up is realized by applying a process simulating “an arithmetic operation process provided in advance in the basic data type” to an arbitrary number of consecutive bits.
  • the present invention should be able to be reflected in a system in which a plurality of connected nodes operate in cooperation. In this case, further improvements are expected in the range and speed of numbers that can be handled.
  • the conceptual diagram of the conversion to the decimal notation at the time of input / output The figure which illustrated "the main computer” and “the apparatus which performs or assists numerical calculation independently”. A computer that is subordinate to the main computer on the network. The figure which illustrated performing a numerical calculation using an array structure using a network. The figure which illustrated "the main computer” and “the apparatus which contains two or more in FIG. 2". The figure which showed invention in steps from the viewpoint of the range of the number which can be handled.
  • a series as a unit for performing four arithmetic operations in “numerical calculation using a character string of a prior art” or “numerical calculation using an arbitrary number of consecutive bits arranged in an array or array” of the present invention This process is referred to as a “unit of calculation processing”.
  • the content of the series of processing varies depending on the type of arithmetic operation.
  • “addition of digits” is subtracted, “subtraction of digits” is subtracted, “addition of one digit and another digit” is added in integration, Is a process of performing one subtraction by numerical calculation using an array structure from the number “.”
  • total number of calculation processes In the numerical calculation using the array structure, the total number of the above-mentioned calculation processing units executed when a certain arithmetic operation is performed is referred to as the “total number of calculation processing”. . Even if this value is a numerical calculation for the same two numbers, it differs depending on the type of calculation.
  • this value is the "minimum capacity required to perform numerical calculations" and does not take into account the area for storing the calculation results. If the calculation result is to be secured only by the necessary amount at the time of calculation, one of the areas representing the two numbers is regarded as an “area for storing the calculation result” and is executed while rewriting it. However, since it becomes impossible to cope with overflow, it is necessary to secure an area for storage separately from the necessary amount at the time of calculation if the overflow is surely handled.
  • FIG. 5 of FIG. 1/2 is “Overview of the Invention”. Please refer to these as you continue to read. I will explain the meaning of the formula more concretely.
  • the feasibility of the numerical calculation of the present invention depends on “required capacity” and “time required for calculation”. If these values are sufficiently realistic, it should be feasible. We will see under what circumstances these values are realistic.
  • the three elements of “total number of elements”, “time required to access the storage medium”, and “time required to execute the unit of calculation processing” will be described.
  • Total number of elements is set to “K”.
  • the total number of elements coincides with the number of digits when an attempt is made to express a certain number N in Pn base. Therefore, K can be expressed as follows. From this, the denominator of the S is increased the larger the value of P n, it can be seen that the value of K that is "the total number of elements" less.
  • time required to access the storage medium is “T”.
  • R is the time required to establish communication with a storage medium other than the memory.
  • the time required for opening a file in the file input / output process is R.
  • the difference between “time required to read 1 byte from a storage medium other than memory” and “time required to read 1 byte from memory” is defined as “Q”.
  • Q the difference between “time required to read 1 byte from the file excluding time required to open the file” and “time required to read 1 byte from the memory”.
  • time required to access the storage medium is expressed as follows using R, L, Q, and T.
  • the processing time does not increase X times, and the rate of increase is slight.
  • the time required for arithmetic processing between 8-byte long long int types is not twice the time required for arithmetic processing between 4-byte int types, and the rate of increase is 1.5. Less than double. Therefore, it can be said that the value of I is very small (I ⁇ 1). The fact that the value of I becomes very small will be described more specifically in paragraph 197.
  • I and U are used to represent the time required for the unit of calculation processing.
  • time required for the unit of calculation processing is as follows.
  • K represents “total number of elements”.
  • the value of K in the case of a certain number N tried to deal with P n-ary is log (P n) N.
  • the denominator when the base of this equation is converted to 10 is S. Therefore, the value of S decreases as the value of Pn increases.
  • a decrease in the value of S means a decrease in the value of K, and a decrease in the value of K means that the total number of elements decreases.
  • the element represents one digit in the case where a certain number N is expressed on the computer by Pn base. Therefore, reducing the total number of elements means that the number of digits required to express a certain number is reduced, and this is synonymous with “decreasing the total number of calculation processes”.
  • the value of K also depends on the value of log 10 N.
  • log 10 N depends on the value of N.
  • the value of N represents the number to be handled. The larger the number handled, the greater the value of N. Therefore, it can be understood that the larger the number handled, the larger the value of K.
  • the expression corresponding to the present invention is expressed as follows: “In numerical calculations using an array structure, the larger the number to be handled, that is, the number to be expressed by the array structure, the value of K becomes “This is because the value of log 10 N increases.”
  • P seems to be limited. When one digit is expressed by n bits, a maximum of 2 n numbers can be expressed. The value of P is 2 if all the numbers that can be represented by n bits are used up. From here, it will adjust the value of the bottom to a value smaller than 2 n depending on the application, it seems generally probably be limited to 10 x ary. This will be described from paragraph 143 as “speeding up display”. What I want to say now is that the value of P is likely to be 2 or 10.
  • the value of L is the number of bytes required to express one digit when trying to express the number N on the computer in the Pn base notation in the numerical calculation using the array structure.
  • R is the time required to establish communication with a storage medium other than the memory.
  • Q is the difference between “time required to read 1 byte from a storage medium other than memory” and “time required to read 1 byte from memory”. Accordingly, the values of R and Q are both affected by hardware performance. The higher the “access speed of the storage medium other than the memory” employed, the smaller the values of R and Q.
  • the value of Q turns negative. This can occur, for example, when an external device (5 in FIG. 2) specialized for numerical calculation using an array structure is created. More specifically, the external device includes “a storage medium that exceeds the memory performance of the main body”, “arithmetic processing device”, and “software for executing numerical calculations using an array structure”. In this case, the numerical calculation is performed independently in response to a request from the main computer and the result is returned to the main computer.
  • an external device (5 in FIG. 2) specialized for numerical calculation using an array structure is created. More specifically, the external device includes “a storage medium that exceeds the memory performance of the main body”, “arithmetic processing device”, and “software for executing numerical calculations using an array structure”. In this case, the numerical calculation is performed independently in response to a request from the main computer and the result is returned to the main computer.
  • T value is the time required to read 1 byte from the memory area. Therefore, the value of T depends on the memory performance. The value of T increases as the memory with lower performance is employed, and the value of T decreases as the memory with higher performance is employed.
  • the present invention itself relies on the fact that “the access speed to the storage medium has increased” and the “capacity has increased” much more than when the prior art was invented. If the performance improvement will continue in the future, in the numerical calculation using the array structure, the improvement that is established between “current and present” should also be realized between “present and future”.
  • K is a value that supports the total number of instructions
  • S is a value that decreases the value of K.
  • ⁇ and ⁇ are equations relating to the speed per element. Therefore, when log 10 N is regarded as a constant, “S ⁇ ⁇ ⁇ ⁇ takes a smaller value” means that “a numerical calculation using an array structure is faster when a number of the same size is handled. It can be understood that this means that “the operation is performed”. If the upper limit of the capacity required at the time of calculation is not considered, it means that “a larger number can be handled at the same time”, that is, “the capacity of the storage medium satisfies the capacity required at the time of calculation. It is understood that the smaller the values of S, ⁇ , and ⁇ , the larger number can be handled at the same time.
  • L appearing as ⁇ and ⁇ is a capacity necessary to represent one element, that is, a capacity necessary to represent one digit in the numerical calculation using the array structure.
  • the value of K is the total number of elements required to express a certain number N in the numerical calculation using the array structure, that is, the number of digits required. Therefore, in the numerical calculation using the array structure, the “capacity required when expressing a certain number N” is equal to the number obtained by multiplying the value of K by the value of L.
  • the “capacity required for the storage medium” is “capacity required to express N” and “ It is a value obtained by adding together “capacity necessary for expressing N ′”.
  • the minimum required capacity to express a certain number is “required amount when expressing”, and the minimum necessary to perform numerical calculation using a certain two numbers This capacity is called “calculated amount”.
  • P n is the size of the base when a certain number N is expressed by the scaled number method.
  • the value of K is the total number of digits required when a certain number N is expressed in Pn decimal notation, that is, an element required when a number N on the computer is expressed in Pn decimal notation.
  • the total number of The value of L is a capacity required to represent one digit at this time.
  • the value of K is larger the value of P n becomes large, it becomes smaller.
  • the value of L increases as the value of Pn increases.
  • the value of K decreases and the value of L increases.
  • the “decrease rate for K” exceeds the “increase rate for L”
  • the required amount for expression “KL” and the “necessary amount for calculation” represented by the addition should decrease. is there.
  • KL is the maximum (1/2) because “S and thus K decreases (1 / 2.4) times and L is constant”. 4) Decrease by a factor of 2. However, in the latter, since the decrease rate of K and the increase rate of L are offset, the improvement of KL as in the former cannot be obtained. Regarding KL, the difference between the former and the latter can be expressed as follows. Note that the value of (KL / K'L) is (1 / 2.4) in the former, whereas the value of (K'XL / KL) is 1 in the latter.
  • the prior art tries to solve the digit loss on the memory.
  • the required capacity of the storage medium increases as the number to be handled increases. If the place where the data is handled is limited to the memory, the total capacity of the memory becomes the upper limit of the number that can be handled. Therefore, we introduced a storage medium with a larger capacity, changed the storage location of the array structure representing a certain number to this storage medium, and in exchange, “the array structure representing the number on this storage medium is retained. It holds three values: a reference to a location that is being used, or a key value for accessing the location, “total number of elements”, and “number of bits of each element (size)”. By doing so, it is possible to simplify the competition in memory with other applications, and to increase the upper limit of the number that can be handled.
  • Access speed to storage media depends on hardware performance. Therefore, by adopting a storage medium having a higher access speed, a direct improvement in access to the storage medium should be obtained.
  • the main change caused by transferring data representing a certain number to a storage medium other than the memory is only the part related to the access procedure to the storage medium other than the memory, and in the numerical calculation using the array structure Note that there is no particular change in the behavior of the elements themselves. This is the end of the introduction of storage media other than memory. Let me return to the discussion about V and its configuration again.
  • the value of S and thus the value of K decreases as the number of elements per element increases.
  • the value of L increases stepwise as the number represented by the element increases.
  • the increase in the value of L is the reason why the values of ⁇ and ⁇ increase. Accordingly, in the numerical calculation using the array structure, when the number to be numerically calculated is to be expressed by the Pn base system, the values of S, ⁇ , and ⁇ can be said as follows. “As the value of Pn increases, the value of S decreases. On the other hand, the values of ⁇ and ⁇ increase.”
  • the above improvement can be described in more detail as follows. “The values of S and ⁇ decrease while the values of ⁇ and ⁇ remain unchanged” simply means that only the value of K decreases.
  • the value of K is the total number of numbers, that is elements of digits when then an attempt is made to represent the N in P n. Since the “total number of calculation processes” is proportional to the “total number of elements”, a simple decrease in the value of K means that “the total number of calculations has been reduced without changing the contents of the calculation process”. is doing.
  • the fact that the values of ⁇ and ⁇ remain unchanged and only the value of S is reduced means that the total number of calculations is reduced, and higher-speed processing is possible for the same number.
  • a character string including a character that cannot be recognized by a person can be rephrased as “an array having a 1-byte variable as an element”. In other words, if it is a 1-byte variable, it does not have to be a character type. This means that a maximum of 256 types of numbers can be expressed in an 8-bit sequence, and high-speed arithmetic operations that are not inferior to the basic data type can be executed using two “8-bit sequences”. , Implying that an 8-bit sequence is acceptable. This plays a very important role in the discussion of “means for increasing the value of the“ third ” Pn ”.
  • the required time does not increase X times. Also, just because the number of bits to be processed at a time is X times does not mean that the required time is X times. In both cases, the increase in required time is less than X times.
  • the required time when comparing reading of 1 byte and reading of 1000 bytes, the required time hardly changes even though the reading capacity is 1000 times. Further, when the operation between 1 byte and the operation between 4 bytes are compared, the required time is less than 1.5 times even though the number of bits handled at a time is 4 times. Put differently, number despite a two 32 times that can be handled, the required time is not less than 1.5 times.
  • the values of ⁇ and ⁇ are not X times just because the value of L is X times, and in recent storage media, this is especially expressed by ⁇ (time required to access the storage media). It is remarkable. More specifically, it can be said that this opening depends on the values of “Q of ⁇ ” and “I of ⁇ ”, in particular, the value of Q is small in recent storage media.
  • the first point to note is that there is no change in the value of KL even if the size of the element is increased. If the value of L, which is the size of the element, is X times, the value of S is reduced to 1 / X times, and the value of K is also reduced to 1 / X times. The value of K ⁇ L is offset by the decrease in K and the increase in L, and no change occurs. Therefore, it can be seen that “when only the size of the element is increased for the same number, the speed is improved, and the capacity of the storage medium required at this time is not particularly changed”.
  • the int type is a 4-byte variable
  • the long long int type is an 8-byte variable.
  • the time required for the calculation does not double.
  • the required time is about twice that of the int type operation. This is because operations between int types are executed twice. About these things, it seems that you can be convinced as a well-known fact.
  • Acceleration in terms of speed can be obtained when the size of each element is increased without using a segmented area such as an array or compound variable.
  • the improvements I made in the 96th to 113th paragraphs were roughly such.
  • the location of the elements in the improvements described in paragraphs 96 to 113 that is, the location of “basic data type other than 1-byte character type” is expressed as “arbitrary arbitrary number of consecutive bits”. If it can be replaced, it can be said that further speed improvements are obtained.
  • “Processing a sequence of consecutive bits all at once” is a combination of the four arithmetic operations provided in advance in the basic data type with AND operators, OR operators, XOR operators, bit shift operators, etc. To reproduce at the bit pattern level. To put it more simply, it means “make your own basic data type arithmetic operation function for a bit sequence longer than the basic data type”. In other words, it is only necessary to prepare two “regions longer than the basic data type” and reproduce the behavior as close as possible to the “four arithmetic operations included in the basic data type”.
  • the standard C ++ has a class called bitset.
  • bitset By using this class, “reserving a continuous sequence of bits longer than the basic data type” can also be used to collectively process a sequence of consecutive bits. Can also be solved.
  • binary file input / output can be used in the same way as a normal type, “expression on a storage medium other than memory” can be easily performed.
  • the 8-byte long long int type is the most efficient for integer calculations.
  • bitset a sequence of 9 or more consecutive bits is assigned, and the bit pattern required for any four arithmetic operations is assigned to this sequence.
  • the functions of the four arithmetic operations provided in advance in the long long int type can be reproduced at the bit pattern level. Since the long long int type is a sequence of 64 consecutive bits, it is only necessary to prepare two sequences of 72 or more consecutive bits and reproduce the behavior similar to the long long int type for the four arithmetic operations. By using bitset and various operators (&,
  • the improvement obtained by replacing the element with the “basic data type excluding the 1-byte character type” with the “arbitrary number of consecutive bits” is the above-mentioned improvement of the “1-byte character type It is the same quality as the improvement obtained by moving from "Numerical calculation using array” to "Numerical calculation using basic data type excluding 1-byte character type”.
  • the Q value that appears as ⁇ and the I value that appears as ⁇ depend on the performance of the hardware.
  • the value of T that appears as ⁇ depends on the memory.
  • the values of Q and I are improved by adopting “storage media other than memory with faster reading speed” and “higher performance processing device”, and adopt “memory with faster reading speed”. As a result, the value of is improved.
  • the improvement of the values of ⁇ and ⁇ while keeping the value of S means that only the time required for the unit of calculation processing is improved. Therefore, it can be said that the larger the total number of calculation processes, the more remarkable the improvement effect. It can be said that “the total number of calculation processes” is proportional to the value of K, and the value of K is proportional to the value of the number N to be expressed. Therefore, it can be understood that “the larger the number handled, the more remarkable the effect obtained by adopting high-performance hardware”. In other words, if the rate of increase of ⁇ and ⁇ is small in the first place, it is impossible to obtain a visible improvement for this point unless a certain number of numbers is handled.
  • providing an external device specialized for numerical computation using an array structure is an effective means for the subject of "handle larger numbers faster".
  • This device has “software that can execute the method according to claim 1”, and thereby performs numerical calculation using an array structure.
  • the method described in claim 2 or claim 3 is incorporated in this software as necessary.
  • the connection with the main computer should be feasible with known techniques. For example, connection using USB or wireless LAN is conceivable. In any case, it is desirable from the viewpoint of handling a larger number that a larger-capacity storage medium prepared for numerical calculation using an array structure is included in this device. Seem.
  • the value of Q can turn negative depending on the configuration of the apparatus. That is, faster access to the storage medium can be realized than when the main computer executes alone.
  • this device is responsible for all of the processing and cases where a part of the processing is performed auxiliary, but the operation contents are arranged in a single unit using a storage medium other than the memory by the main computer. This is the same as when performing numerical calculations using. The only difference is whether an external device does all of that or assists some. In any case, the processing content of the numerical calculation remains the same, only the place where it is executed is changed. As stated in the 132nd paragraph, in the numerical calculation using the array structure, since each digit is independent for a certain number of expressions, it is easy to share such processing at the software level. Such a combination of external devices can be regarded as a form of introduction of parallel processing if the viewpoint is changed.
  • the present invention can be realized by a plurality of computers connected by a network. For example, one main computer is determined, this computer is set as a UI, and the remaining computers are regarded as the external devices described above (FIG. 3).
  • FIG. 4 is an example of this, and 6 in FIG. 4 is a device that includes a plurality of the above-mentioned external devices.
  • the former should use decimal or hexadecimal notation for the purpose of the invention.
  • the latter is expanded to a maximum of 256 base.
  • the latter can be a character string by definition, but such a character string will be mixed with symbols other than numbers and so-called garbled characters, so it should no longer be a "character string that people can recognize as numbers". .
  • 256 types of characters must be properly used for each digit, and it is difficult to pass the number as intended from a person to a computer via such a character string.
  • bit sequence may be examined 32 bits at a time from the top, and the group that was 0 may be shifted left 32 bits and deleted. . It should be noted that this operation is facilitated by using a class called bitset provided in the standard C ++ mentioned in the 122nd paragraph. Specifically, functions are already provided for memory reservation, assignment, and bit shift. All that is required is an "approximate number of digits". As described above, such an approximation can be obtained by an equation for obtaining K.
  • the conversion process does not have to be executed every time an operation is performed, but should be performed once when a person passes a “character string regarded as a numerical value” to a computer and once when it is displayed.
  • a “character array for display” is prepared separately from the array of the main body, and each element is filled with “numeric value in decimal notation” and displayed. If the values of the array of the main body are not changed in this way, the calculation can be resumed without conversion after display.
  • the number that a person can input by inputting to the calculator via the UI should not be so large. For example, it is difficult to imagine a situation in which a person directly manually inputs a number of 100 million digits. Since such a large number of digits will not be handled, it can be said that the load of such conversion processing is not so much concerned with the input. When used by humans, it seems that the appearance of “a smaller value is entered and the number of digits expands as a result of repeated internal numerical calculations, and this is displayed as a result”. However, issues remain with regard to output. This is because an enormous number of digits can be displayed during output. When large numbers are frequently output, it is necessary to deal with them.
  • the character string can be displayed from the beginning, and the conversion process at the time of display can be completed with a smaller burden than when the number of characters is expanded to 2n .
  • the number that can be expressed is smaller than when the base is expanded to 2 n . For example, there are fewer numbers that can be represented by the same number of digits in the decimal system than in the 256-base system.
  • a character array having elements corresponding to the number of digits required for decimal notation is prepared. Aliquoted I than the digit number of elements that took this sequence 10 x ary notation. Each partition generated by equally dividing corresponds to each digit of the 10 x-ary. For each of the sections, conversion to decimal is completed if “10 x decimal digit values” are sequentially satisfied from the end in order from the end. Note that the remaining digits are filled with zeros.
  • the “character array expressing a certain number of decimal notation” thus formed can have a leading zero in the block including the largest digit in the 10 ⁇ decimal system, in other words, the leftmost digit. That is, one or more zeros can follow from the beginning. Therefore, it is necessary to detect an element in which a non-zero character appears for the first time, and prepend it so that this is the head. Since this display array is a character array, such an operation can be easily realized. A portion where a non-zero character appears for the first time may be used as the start address of the character string, and such an operation, that is, an operation of filling the character string forward is a known technique. Through this process, even if a plurality of 0s are arranged from the top, it should be possible to display without problems. Hereinafter, the above method will be described more specifically.
  • Table 1 shows a step-by-step process for converting the number xyz represented by three digits in decimal notation to decimal. It can be seen that the number that requires 3 digits in decimal notation does not exceed 6 digits in decimal notation.
  • a character array having six elements is prepared ((1) in Table 1). Since the number of digits required in the decimal system is 3, the 6 elements of the array are divided into 3 equal parts. Then, it can be classified in a state of two elements per section ((2) in Table 1). Each section can correspond to each digit in decimal notation ((3) in Table 1). After that, it is sufficient to fill with the value of each digit in the corresponding decimal notation in order from the last element of each section. Then, what is concrete about this "filling with the value of each digit in the corresponding decimal notation in order from the last element of each partition" is more concrete using Table 2. Let me tell you.
  • Table 2 shows a step-by-step process for converting a number represented as “123” in decimal notation into decimal notation. * In the table represents an arbitrary value.
  • a character array having six elements is prepared ((1) in Table 2). Dividing into three sections, each section is associated with each digit in decimal notation ((2) in Table 2). Specifically, the elements of subscript numbers [4] and [5] correspond to the first place from the right in decimal notation, and the elements of [2] and [3] correspond to the second place. , [0], [1] correspond to the third place.
  • [4] and [5] are filled with 3, [2] and [3] are filled with 2, and [0] and [1] are filled with “1” in order from the end of each partition. That is, 3 is assigned to [5], 2 is assigned to [3], and 1 is assigned to [1]. ((3) in Table 2). At this time, if there is an element to which nothing is assigned for each section, 0 is assigned. In other words, [4] in the operations [4] and [5], [2] in the operations [2] and [3], and 0 in [0] in the operations [0] and [1]. To do. ((4) in Table 2). This completes the conversion to decimal notation. However, since the top of the array is 0, this needs to be corrected. The character string is corrected by prepending it ((5) in Table 2). You can display this afterwards.
  • Such an operation can be executed sequentially from the first section.
  • it is necessary to consider the overflow must Ika doing the conversion operation from a small digits.
  • the 10x base system there is no overflow in conversion, so it is possible to perform conversion from a large place and display sequentially from the converted part.
  • the padding of characters since it can be understood that [0] [1] is the head, this operation may be performed only at the time of the first process.
  • decimal notation 123 since each digit is a numerical value, it is necessary to convert it into a character code when storing the numerical value in a character type array for display. This is the same even in cases other than the 10x base. For example, in Windows, characters from 0 to 9 are represented by 48 to 57. Therefore, in order to convert a numerical value of 0 to 9 into a displayable character of 0 to 9, it is necessary to add 48. As mentioned above, over the 143rd to 162nd paragraphs, the speeding up of the display has been described. Examples will be described below.
  • a decimal line is a char type means “a char type is an element in decimal notation”.
  • decimal notation is used for the purpose of the invention. Therefore, the “decimal” line in Table 3 is the value of each expression constituting V when trying to handle 10 10 ⁇ 12 in “numerical calculation using a character string that a person can recognize as a number”.
  • the number of digits required when 10 10 ⁇ 12 is expressed in decimal notation is (10 12 +1) digits. As it let me get one digit for simplicity rounding results in 10 12-digit i.e. that 1T digits necessary. This corresponds to the value of K.
  • one digit is represented by a 1-byte character type. That is, one element is represented by a 1-byte character type. This corresponds to the value of L. Therefore, the capacity of the storage medium required when 10 10 12 is expressed by the prior art is 1 TB with 1T elements of 1 byte. This corresponds to the value of KL.
  • K log 10 10 10 ⁇ 12 / log 10 10”. Therefore, the value of S is 1. Since the value of L is 1, the value of ⁇ is “R + Q + T”, and the value of ⁇ is “U”.
  • N ′ there are a number N ′ of exactly the same conditions, and N and N ′ are used for addition.
  • the required amount at the time of calculation is 2 TB. This corresponds to the sum of “KL of N” and “KL of N ′”.
  • the “unit of calculation” is addition, subtraction, integration, or division using a 1-byte character type. In this case, addition is performed using a 1-byte character type.
  • “Implicit recognition” corresponds to “access to storage medium” on the computer.
  • the time required to do this once is ⁇ .
  • “Addition between predetermined digits” is “calculation using two elements”, that is, “unit of calculation”. And the time required for doing this once is ⁇ .
  • will be executed at least 932G times and ⁇ will be executed at least 416G times. More specifically, it is understood that an operation of reading data of one element (in this case, 1 byte) from the storage medium is executed 932G times, and addition of one element is executed 416G times. In this case, the required amount at the time of calculation is 932G.
  • the need for about 416 GB to represent 10 10 ⁇ 12 in 256 base means that when 1 TB is used, a number about 256 584 G times can be expressed.
  • the time required for the numerical calculation should be almost the same as the time required for using 1 TB in the prior art. This is because the size of each element is the same, and the behavior of the elements is almost the same. “The behavior of the elements is almost the same” means “the same as the unit of calculation processing, except that the boundary of overflow is changed from 10 to 256”. “The number that can be expressed per one digit savings is 256 times”, and “the numerical calculation with the same number of digits does not change despite the increase in the number that can be handled”. That is.
  • FIG. 5 corresponds to the transition from (c) to (b).
  • Table 4 shows specific numerical values in the case of handling 10 10 ⁇ 12 in order from the smallest bottom size. The contents of each column are the same as in Table 3.
  • will be executed at least 208G times and ⁇ will be executed at least 104G times. More specifically, it is understood that an operation of reading data of one element (“4” bytes) from the storage medium is executed 208 G times, and addition of one element is executed 104 G times. The required amount at the time of calculation remains 932 GB.
  • the reason why the rate of increase of ⁇ and ⁇ approaches 1 is the miniaturization of Q and I, and I mentioned in paragraphs 52-60 that the miniaturization of Q and I is brought about by the improvement of hardware performance. Street. If the hardware performance continues to improve, further improvements should be expected in this area. If we look at this improvement in performance, it would be better to make the product operable with more hardware.
  • N 10 10 ⁇ 6
  • N is a number of 1 million digits.
  • Such calculation includes a lot of room for parallel processing.
  • Improvements that accompany the transition from char type to int type arise from the transition from int type to long long int type. Then, if it is possible to execute an arithmetic operation that is inferior to that of the basic data type for "arbitrary number of bits", the improvement that occurs with the transition from int type to long long int type will be long long int It should also occur when moving from type to “longer bit sequence”. As described in the 120th to 122th paragraphs, “to execute an arithmetic operation that is inferior to that of the basic data type” should be sufficiently realized by a known technique. This is because the algorithm employed in such an operation should be the same as that executed in the case of the char type or int type. An arbitrary sequence of bits should be subjected to "a series of fixed operations at the bit pattern level" according to the type of arithmetic operation.
  • Table 5 shows data when "addition using an area of an arbitrary length” is executed "in series” 1 million times using bitset.
  • the “required time” is the time required to execute addition one million times in series, and the unit is seconds.
  • “Rate 1” is a magnification of the area size based on 8 bits
  • “Rate 2” is a magnification of the required time based on 8 bits. I wanted to show from a global perspective that the time required is not X times just because the size of the element has increased X times, so the time required has been approximated.
  • Rate 1 means “16 times as large as the element size is 8 bits”.
  • Rate2 means that “the required time is about three times as long as 8 bits”. (Note again that these values are approximate. For example, this tripled value is obtained by dividing the 128-bit duration 0.16 by the 8-bit duration 0.06. Rounded up to the nearest whole number) Note that the required time has only tripled despite the fact that the element size has increased by a factor of 16. When applied to V, this means that “with the transition from 8 bits to 128 bits, an improvement of 1/16 is obtained for S, but ⁇ is only 3 times worse”.
  • the rightmost column in Table 5 represents the difference between Rate1 and Rate2. If the required time is X times as the element size is X times, this value should be zero and constant. However, this is not the case, and the value increases as the number of bits increases. Therefore, it can be seen that, generally, the difference between the improvement of S and the deterioration of ⁇ increases, and the degree of improvement increases. The value of the time required should change depending on the environment, but the behavior that the degree of improvement increases globally should be the same in any environment.
  • the challenge in this effort is“ how much wasteful behavior is achieved for the four arithmetic operations using two longer bit sequences ”. If high-speed processing with less waste than that using bitset can be realized by using an assembly language or the like, it is considered preferable to adopt that from the viewpoint of speed. This is because this part is most frequently executed. However, from the standpoint of “an improvement in hardware performance is unpredictable”, specifications that can be executed in more forms should be adopted. In implementation, the two should be compared and a method convenient for the purpose should be adopted.
  • the range of numbers that can be handled (e) The range of numbers that can be handled (f) Increasing click or by use of an external device, increased by a combination of a number in the range (g) a storage medium other than the memory that can be handled, ranging the number of which can be handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

La présente invention utilise des valeurs numériques représentées à l'intérieur d'un ordinateur dans une notation de position non décimale ou supérieure pour obtenir un calcul numérique précis d'un plus grand nombre par rapport à l'état de la technique et à une vitesse supérieure. La nature de la présente invention est de prêter attention à l'un ayant une part élevée parmi divers coûts dans un calcul numérique utilisant une structure de réseau et de rechercher « un événement qui augmente une autre valeur tandis que le déclin d'une valeur spécifique est maintenu faible (ou empêchée de se produire) ». Grâce à la présente invention, la limite supérieure des nombres qui peuvent être traités est considérablement améliorée. Par exemple, à partir de 2016, en combinant un ordinateur personnel et un matériel qui sont généralement sur le marché, un niveau tel qu'« il devient possible de réaliser un calcul numérique de dizaines de millions de chiffres à un trillion de chiffres en un temps qui n'est pas irréaliste » est atteint.
PCT/JP2016/089228 2016-12-21 2016-12-21 Calcul utilisant des valeurs numériques représentées dans un ordinateur en notation de position non décimale ou supérieure WO2018116483A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/089228 WO2018116483A1 (fr) 2016-12-21 2016-12-21 Calcul utilisant des valeurs numériques représentées dans un ordinateur en notation de position non décimale ou supérieure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/089228 WO2018116483A1 (fr) 2016-12-21 2016-12-21 Calcul utilisant des valeurs numériques représentées dans un ordinateur en notation de position non décimale ou supérieure

Publications (1)

Publication Number Publication Date
WO2018116483A1 true WO2018116483A1 (fr) 2018-06-28

Family

ID=62626163

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/089228 WO2018116483A1 (fr) 2016-12-21 2016-12-21 Calcul utilisant des valeurs numériques représentées dans un ordinateur en notation de position non décimale ou supérieure

Country Status (1)

Country Link
WO (1) WO2018116483A1 (fr)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57164334A (en) * 1981-04-02 1982-10-08 Nec Corp Operating device
JPS57199043A (en) * 1981-06-03 1982-12-06 Nec Corp Operating device
JPS6275838A (ja) * 1985-09-30 1987-04-07 Matsushita Electric Ind Co Ltd 可変精度数値デ−タ演算装置
JPS62271017A (ja) * 1986-05-20 1987-11-25 Fujitsu Ltd 十進数加減算装置
JP2004178539A (ja) * 2002-11-28 2004-06-24 Kazunori Iwasaki コンピュータにおける文字型データを使用しての数値計算

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57164334A (en) * 1981-04-02 1982-10-08 Nec Corp Operating device
JPS57199043A (en) * 1981-06-03 1982-12-06 Nec Corp Operating device
JPS6275838A (ja) * 1985-09-30 1987-04-07 Matsushita Electric Ind Co Ltd 可変精度数値デ−タ演算装置
JPS62271017A (ja) * 1986-05-20 1987-11-25 Fujitsu Ltd 十進数加減算装置
JP2004178539A (ja) * 2002-11-28 2004-06-24 Kazunori Iwasaki コンピュータにおける文字型データを使用しての数値計算

Similar Documents

Publication Publication Date Title
Kaliman et al. New algorithm for tensor contractions on multi‐core CPUs, GPUs, and accelerators enables CCSD and EOM‐CCSD calculations with over 1000 basis functions on a single compute node
US7958133B2 (en) Application conversion of source data
JP3954171B2 (ja) コンピュータにおけるスカラ値をベクトルに記入する方法
JP2003067185A (ja) アプリケーション編集装置、データ処理方法及びプログラム
EP2112602A2 (fr) Dispositif, système et procédé pour résoudre des systèmes d'équations linéaires utilisant un traitement parallèle
JPS63132338A (ja) コード生成方法
JP6666554B2 (ja) 情報処理装置、変換プログラム、及び変換方法
JP5522283B1 (ja) リストベクトル処理装置、リストベクトル処理方法、プログラム、コンパイラ、及び、情報処理装置
Smith et al. Sparse triangular solves for ILU revisited: Data layout crucial to better performance
Scott et al. Structuring the GLL parsing algorithm for performance
US7478363B2 (en) Method for translating a given source program into an object program containing computing expressions
US20030120887A1 (en) Memory allocation method using multi-level partition
WO2018116483A1 (fr) Calcul utilisant des valeurs numériques représentées dans un ordinateur en notation de position non décimale ou supérieure
CN116186045A (zh) 稀疏矩阵的调整方法、装置、电子设备及存储介质
US11635947B2 (en) Instruction translation support method and information processing apparatus
JP3310525B2 (ja) デジタルデータ処理装置
US11556317B2 (en) Instruction translation support method and information processing apparatus
JP2021197173A (ja) ニューラルネットワークのための改善された乗算/累積デバイス
JP2018124877A (ja) コード生成装置、コード生成方法、およびコード生成プログラム
JP2008544344A (ja) 大数乗算方法およびデバイス
JP2002269162A (ja) 動作合成方法
US10430326B2 (en) Precision data access using differential data
Chen New variable-length data compression scheme for solution representation of meta-heuristics
JP2000020318A (ja) メモリアクセス命令削減装置および記録媒体
US20220027161A1 (en) Non-transitory computer-readable medium, assembly instruction conversion method and information processing apparatus

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16924431

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16924431

Country of ref document: EP

Kind code of ref document: A1