CN111868805B - 参数设定装置、运算装置、它们的方法、以及记录介质 - Google Patents

参数设定装置、运算装置、它们的方法、以及记录介质 Download PDF

Info

Publication number
CN111868805B
CN111868805B CN201980019927.0A CN201980019927A CN111868805B CN 111868805 B CN111868805 B CN 111868805B CN 201980019927 A CN201980019927 A CN 201980019927A CN 111868805 B CN111868805 B CN 111868805B
Authority
CN
China
Prior art keywords
character string
csv
ref
unit
size
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201980019927.0A
Other languages
English (en)
Other versions
CN111868805A (zh
Inventor
五十岚大
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of CN111868805A publication Critical patent/CN111868805A/zh
Application granted granted Critical
Publication of CN111868805B publication Critical patent/CN111868805B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/42Data-driven translation
    • G06F40/44Statistical methods, e.g. probability models
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/36Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with means for detecting characters not meant for transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

高效地进行对文本文件的运算处理,其中该文本文件包含1个以上的记录,各记录包含任意长度的1个以上的单元,各单元包含任意个字符。参数设定装置将属性信息设为输入,设定相当于1记录的量的字符串的大小的最大值(Scsv)以及最小值(scsv)、编码信息的合计大小的最大值(Senc)、对编码信息进行特定的运算而得到的运算值的合计大小的最大值(Sss)、以及参考信息的合计大小(Sref),作为成为编码以及运算的处理单位的记录数而得到C/(Scsv+Senc+Sref)的函数值,作为运算处理中的并行数而得到f0/I·r·Scsv的函数值。其中,C为高速缓冲存储器大小,M为主存储器大小,f0为scsv·M/(scsv+Senc+max(Sref,Sss))的函数值。

Description

参数设定装置、运算装置、它们的方法、以及记录介质
技术领域
本发明涉及对于文本文件的字符串的运算技术。
背景技术
已知包含1个以上的记录(record)、各记录包含任意长度的1个以上的单元(也有称为‘字段’的情况)、各单元包含任意个字符的文本文件的形式(例如,参考非专利文献1等)。在对这样的文本文件的各单元中记述的值将特定的运算处理(例如,参考非专利文献2、3等)进行并行处理的情况下,需要确定在一个单位处理中被处理的记录数以及并行数。这时,为了高效地进行运算处理,不仅要考虑进行该运算处理的运算装置的主存储器大小以及高速缓冲存储器大小,还必须考虑被输入的文本文件的各记录以及各单元的位置以及长度。
现有技术文献
非专利文献
非专利文献1:Y.Shafranovich,“RFC4180:Common Format and MIME Type forComma-Separated Values(CSV)Files,”[online],October,2005,SolidMatrixTechnologies,Inc.,[平成30年1月6日搜索],因特网<http://www.ietf.org/rfc/rfc4180.txt>
非专利文献2:五十嵐大,千田浩司,濱田浩気,高橋克巳,““軽量検証可能3パーティ秘匿関数計算の効率化及びこれを用いたセキュアなデータベース処理(SecureDatabase Operations Using An Improved 3-party Veriable Secure FunctionEvaluation),”InSCIS2011,2011。
非专利文献3:A.Shamir,"How to Share a Secret",Communications of theACM,November 1979,Volume 22,Number 11,pp.612-613.
发明内容
发明要解决的课题
但是,这样的文本文件的各单元的长度是任意的,此外在该文本文件中不包含表示各单元的位置以及长度的信息的情况也较多。因此,为了确定各单元的位置或长度,必须从最初依次读入被输入的文本文件的字符串。由此,考虑文本文件的各记录以及各单元的位置以及长度,并确定在一个单位处理中被处理的记录数以及运算处理中的并行数,进行高效的运算处理并不容易。
本发明鉴于这样的问题点而完成,目的是高效地进行对于包含1个以上的记录、各记录包含任意长度的1个以上的单元、各单元包含任意个字符的文本文件的运算处理。
用于解决课题的手段
为了解决上述的课题,提供用于进行对于文本文件的字符串的运算处理的参数设定装置。其中,该文本文件包含W个记录,记录的每一个包含任意长度的G个单元,单元的每一个包含任意个字符。W以及G为1以上的整数,G个单元与属性信息对应。C为高速缓冲存储器大小,M为主存储器大小。参数设定装置包括:最大大小设定部、最小大小设定部、编码大小设定部、运算大小设定部、参考大小设定部、处理单位计算部、并行数计算部。最大大小设定部将该属性信息设为输入,设定文本文件的相当于1记录的量的字符串的大小的最大值Scsv。最小大小设定部将该属性信息设为输入,设定相当于1记录的量的字符串的大小的最小值scsv。编码大小设定部设定将相当于1记录的量的字符串编码为规定的有限集合的元而得到的编码信息的合计大小的最大值Senc。运算大小设定部设定对相当于1记录的量的编码信息进行确定的运算而得到的运算值的合计大小的最大值Sss。其中,该编码以及该运算是对文本文件的相当于r记录的量的字符串即处理单位字符串的每一个执行的处理。参考大小设定部设定表示相当于1记录的量的单元各自的位置以及长度的参考信息的合计大小Sref。处理单位计算部作为记录数r而得到C/(Scsv+Senc+Sref)的函数值。并行数计算部作为运算处理中的并行数np而得到f0/I·r·Scsv的函数值。其中,I是对处理单位字符串的每一个执行的编码以及运算的反复次数的最大值,在Sref≥Sss使max(Sref,Sss)=Sref,在Sref<Sss时max(Sref,Sss)=Sss,f0为scsv·M/(scsv+Senc+max(Sref,Sss))的函数值。
发明的效果
通过以上处理,能够高效地进行对包含1个以上的记录、各记录包含任意长度的1个以上的单元、各单元包含任意个字符的文本文件的运算处理。
附图说明
图1是例示了实施方式的运算系统的方框图。
图2是例示了实施方式的参数设定装置的功能结构的方框图。
图3是例示了实施方式的运算装置的功能结构的方框图。
图4是例示了实施方式的处理部的功能结构的方框图。
图5是用于例示实施方式的参数设定处理的流程图。
图6是用于例示实施方式的运算处理的流程图。
图7是用于例示实施方式的线程(thread)i的处理的流程图。
图8是用于例示实施方式的各线程的处理的概念图。
图9是用于例示实施方式的文本文件的概念图。
图10是用于例示实施方式的文本文件的概念图。
图11是用于例示实施方式的文本文件的概念图。
图12是用于例示实施方式的文本文件的概念图。
图13是用于例示实施方式的线程i的处理的流程图。
图14是用于例示实施方式的各线程的处理的概念图。
图15是用于例示实施方式的文本文件的概念图。
图16是用于例示实施方式的文本文件的概念图。
图17是用于例示实施方式的文本文件的概念图。
图18是用于例示实施方式的文本文件的概念图。
具体实施方式
以下,对本发明的实施方式进行说明。
[概要]
首先对概要进行说明。
<文本文件>
在各实施方式中进行对于文本文件的字符串的运算处理。该文本文件包含W个记录,每一个记录包含任意长度的G个单元,每一个单元包含任意个字符。其中,各单元的长度有与各单元的属性相应的上限。W以及G为1以上的整数。例如,W以及G的至少一方为2以上的整数。W也可以是2以上的整数,G也可以是2以上的整数,W以及G这双方也可以是2以上的整数。在W为2以上的整数的情况下,在相互相邻的记录之间存在用于确定记录的分隔的信息。例如,相互相邻的记录之间存在换行,多个记录通过换行符而被相互分隔。而且,在G为2以上的整数的情况下,在相互相邻的单元之间存在用于确定单元间的分隔的信息。例如,在相互相邻的单元之间存在分隔字符或者换行,多个单元通过分隔字符或者换行符而被相互分隔。分隔字符的例子是逗号‘,’。作为其它的例子,在相互相邻的单元之间可以存在制表符(Tab)或者换行符,相互相邻的单元之间也可以存在半角空格或者换行符。在W为2以上的整数的情况下,各记录中包含的单元的个数G相互相同。各记录的G个单元与属性信息(也称为‘模式(Schema)’)。属性信息表示各单元是什么样的属性的信息,至少包含用于确定或者估计各单元所表示的字符串的大小(数据量)的最大值和最小值的信息。例如,属性信息包含表示单元表示什么样的有限集合的元的信息。例如,属性信息可以表示‘单元表示以p为模的余数(mod p)(p为正整数)’,也可以表示‘单元是以规定个(例如10个)的规定的有限域(例如扩域GF(28))的元素表现的字符串’,也可以表示‘单元是表示规定的整数型的整数(例如,带符号的32比特整数)的字符串’。可以是G个属性信息的每一个与各记录的G个单元的每一个一对一地对应(即,可以是1个属性信息表示1个单元的属性),也可以是1个属性信息与各记录的多个(例如G个)单元对应(即,也可以是1个属性信息表示多个单元的属性)。在前者的情况下,属于一个记录的多个单元的属性可以相互不同,也可以相互相同。而且,在W为2以上的整数的情况下,与全部记录的G个单元对应的‘G个属性的组’相互相同。即,全部记录具有的第g个(其中,g=1,…,G)单元的属性att(g)相互相同。此外,属性信息也可以表示单元所表示的信息的种类。此外属性信息可以包含在文本文件中(例如,文本文件的标题(header)可以是属性信息),也可以不包含在文本文件中。文本文件的例子是CSV(Comma-Separated Values,逗号分隔值)文件、TSV(tab-separated values,制表符分隔值)文件、SSV(space-separated values,空格分隔值)文件等。这些被总称为CSV(character-separated values,字符分隔值)文件或DSV(delimiter-separated values,定界符分隔值)文件。
<参数设定装置>
参数设定装置设定并输出用于对于文本文件的字符串的‘运算处理’的参数。该‘运算处理’可以是任意的处理。‘运算处理’的例子是秘密分散处理、秘密计算处理(例如,参考非专利文献1、2等)、加密处理、署名生成处理等。参数设定装置所设定的参数是在一个单位处理中被处理的记录数以及运算处理中的并行数。优选参数设定装置还进一步对从文本文件汇总读入的数据的文件缓冲区大小进行设定。以下,将进行对于文本文件的字符串的运算处理的运算装置的高速缓冲存储器的高速缓冲存储器大小(高速缓冲存储器的存储容量)记述为C,将主存储器的主存储器大小(主存储器的存储容量)记述为M。
参数设定装置包括最大大小设定部、最小大小设定部、编码大小设定部、运算大小设定部、参考大小设定部、处理单位计算部和并行数计算部。在文件缓冲区大小也被设定的情况下,参数设定装置还进一步包括缓冲区大小计算部。
最大大小设定部将属性信息设为输入,设定并输出文本文件的相当于1记录的量的字符串的大小的最大值Scsv。最大值Scsv是较大地估计了文本文件的各记录的字符串的大小的记录大小。即,将属性信息表示的各单元的大小的最大值(或者其估计值)合计了相当于1记录的量的值为最大值Scsv。如上述那样,属性信息包含用于确定或者估计在各单元所表示的字符串的大小的最大值的信息,最大大小设定部使用该信息对最大值Scsv进行设定。例如,在属性信息表示‘单元是表示带符号的32比特整数的字符串’的情况下,该单元的大小的最大值为11字节(用于符号的1字节+用于11位的整数的10字节)。
最小大小设定部将属性信息设为输入,设定并输出相当于1记录的量的字符串的大小的最小值scsv。最小值scsv较小地估计了文本文件的各记录的字符串的大小的记录大小。即,将属性信息表示的各单元的大小的最小值(或者其估计值)合计了相当于1记录的量的值为最小值scsv。如上述那样,属性信息包含用于确定或者估计在各单元所表示的字符串的大小的最小值的信息,最小大小设定部使用该信息对最小值scsv进行设定。例如,在属性信息表示‘单元是表示带符号的32比特整数的字符串’的情况下,该单元的大小的最小值为1字节。
编码大小设定部设定并输出将相当于1记录的量的字符串编码(变换)为规定的有限集合的元而得到的编码信息的合计大小的最大值Senc。最大值Senc是较大地估计了相当于1记录的量的编码信息的合计大小的记录大小。编码信息所属于的‘规定的有限集合’的例子是用以p为模的余数(mod p)表示的有限集合、以规定比特表现的值的有限集合、以规定的比特数的规定的整数型的整数表现的有限集合等。该‘规定的有限集合’根据以下叙述的‘运算’的内容被预先决定。最大值Senc例如根据编码信息所属于的规定的有限集合以及属性信息确定。例如,在属性信息表示‘单元表示以261为模的余数(mod261)’、该单元的字符串被编码为用以261为模的余数(mod 261)表现的编码信息的情况下,与该单元对应的编码信息的最大大小为8字节。编码信息所属于的规定的有限集合例如被预先决定。
运算大小设定部设定并输出对相当于1记录的量的编码信息进行特定的‘运算’而得到的运算值的合计大小的最大值Sss。最大值Sss是较大地估计了相当于1记录的量的运算值的合计大小的记录大小。该‘运算’的例子是秘密分散、秘密计算、加密、署名生成等。‘运算’可以是将各单元作为操作数(operand)进行的运算,也可以是将多个单元作为操作数进行的运算。最大值Sss例如根据编码信息所属于的规定的有限集合、‘运算’的内容、以及属性信息确定。例如,在属性信息表示‘单元表示以261为模的余数(mod 261)’、且该单元的字符串被编码为用以261为模的余数(mod 261)表现的编码信息、‘运算’是将各单元的值以Shamir秘密分散方式(例如,非专利文献3)秘密分散到N(其中,N为正整数)方的运算的情况下,与该单元对应的运算值的最大大小为8N字节。
参考大小设定部设定并输出表示文本文件内的相当于1记录的量的单元的各自的位置以及长度的参考信息的合计大小Sref。‘单元的位置’例如可以是单元的开头字符的位置,也可以是单元的最终字符的位置,也可以是其它的单元内的字符的位置。‘表示单元的位置的信息’例如可以是从文本文件的字符串的开头的字符至‘单元的位置’的字符为止的字符数,也可以是该字符数的函数值。‘表示单元的长度的信息’例如可以是单元的字符数,也可以是该字符数的函数值。参考信息例如根据属性信息确定。其理由在于,能够根据属性信息而确定属于1记录的单元的个数。为了表示各单元的位置以及长度而所需要的数据大小根据表现它的形式决定。例如,在用无符号64比特整数表示各单元的位置以及长度的情况下,各单元的参考信息为16字节。
按文本文件的每个相当于r记录的量的字符串即处理单位字符串执行上述的‘编码’以及‘运算’。设将按每个处理单位字符串执行的处理称为‘单位处理’。处理单位计算部得到表示在1次单位处理中处理的记录数r的‘C/(Scsv+Senc+Sref)的函数值’(作为记录数r得到C/(Scsv+Senc+Sref)的函数值)并输出。高速缓冲存储器大小C可以是被预先决定的大小,也可以是被输入的大小。最大值Scsv是通过最大大小设定部得到的值,最大值Senc是通过编码大小设定部得到的值,合计大小Sref是通过参考大小设定部得到的值。‘α的函数值’可以是α本身,也可以是与α对应的其它的值。‘α的函数值’的例子是α以上的最小的整数、α以下的最大的整数、与α最接近的整数等。例如,可以是r=C/(Scsv+Senc+Sref),可以是r=ROUNDUP(C/(Scsv+Senc+Sref)),可以是r=ROUNDDOWN(C/(Scsv+Senc+Sref)),也可以是r=ROUND(C/(Scsv+Senc+Sref))。其中,ROUNDUP(α)是将α向上舍入到整数值的向上舍入函数,ROUNDDOWN(α)是将α向下舍入到整数值的向下舍入函数,ROUND(α)是将α四舍五入到最接近α的整数的四舍五入函数。这里,Scsv+Senc+Sref表示处理部为了进行从文本文件读入相当于1记录的量的字符串,一边参考参考信息,一边编码为编码信息而进行秘密分散等‘运算’为止的处理(以下,称为‘相当于1记录的量的一系列处理’)所需要的存储器大小。该存储器大小只要为高速缓冲存储器大小以下,就可以在中途不从主存储器读入数据而高速地执行相当于1记录的量的一系列处理。C/(Scsv+Senc+Sref)表示在高速缓冲存储器中能够确保多少次的‘相当于1记录的量的一系列处理’所需要的存储器大小(Scsv+Senc+Sref)。通过将与C/(Scsv+Senc+Sref)对应的记录数r的字符串设为处理单位字符串,能够削减进行r记录分的处理时的对主存储器的访问次数,能够高速地进行运算。
并行数计算部得到表示运算处理中的并行数np的‘f0/I·r·Scsv的函数值’(作为并行数np得到f0/I·r·Scsv的函数值)并输出。例如,可以是np=f0/I·r·Scsv,可以是np=ROUNDUP(f0/I·r·Scsv),可以是np=ROUNDDOWN(f0/I·r·Scsv),也可以是np=ROUND(f0/I·r·Scsv)。f0是scsv·M/(scsv+Senc+max(Sref,Sss))的函数值。例如,可以是f0=scsv·M/(scsv+Senc+max(Sref,Sss)),可以是f0=ROUNDUP(scsv·M/(scsv+Senc+max(Sref,Sss))),可以是f0=ROUNDDOWN(scsv·M/(scsv+Senc+max(Sref,Sss))),也可以是f0=ROUND(scsv·M/(scsv+Senc+max(Sref,Sss)))。其中,在Sref≥Sss时为max(Sref,Sss)=Sref,在Sref<Sss时为max(Sref,Sss)=Sss。I是对每个处理单位字符串执行的‘编码’以及‘运算’的反复次数的最大值。例如,I是按每个处理单位字符串执行的‘编码’以及‘运算’的反复次数。主存储器大小M可以是预先决定的大小,也可以是被输入的大小。最小值scsv是通过最小大小设定部而被设定的值,最大值Senc是通过编码大小设定部而被设定的值,最大值Sss是通过运算大小设定部而被设定的值,合计大小Sref是通过参考大小设定部而被设定的值,反复次数的最大值I是被预先决定的值。优选决定反复次数的最大值I,使得前处理的合计处理量(运算数的合计)对于用于进行相当于r记录的量的字符串即处理单位字符串的‘编码’以及‘运算’的合计处理量的比率为规定值以下。r可以通过处理单位计算部得到,也可以从C、Scsv、Senc、Sref得到。即,只要f0/I·r·Scsv的函数值被得到,则也可以不必在f0/I·r·Scsv的函数值的生成中使用通过处理单位计算部得到的r。这里,X=(scsv+Senc+max(Sref,Sss))/scsv表示相当于1记录的量的一系列处理所需要的存储器大小是从文本文件读入的相当于1记录的量的字符串的存储器大小的最大几倍。因此,Scsv·X表示相当于1记录的量的一系列处理所需要的存储器大小的最大值,I·r·Scsv·X表示为了将相当于r记录的量的一系列处理反复进行I次所需要的存储器大小的最大值。f0是scsv·M/(scsv+Senc+max(Sref,Sss))=M/X的函数值,因此f0/I·r·Scsv表示主存储器大小M是将‘相当于r记录的量的一系列处理(将‘相当于1记录的量的一系列处理’进行相当于r记录的量的处理)’反复进行I次处理所需要的存储器大小的几倍。因此,通过将与f0/I·r·Scsv对应的值设为并行数np,能够抑制主存储器的缓冲区溢出。而且,在编码时需要参考信息,因此需要在主存储器中确保Sref的区域。另一方面,在编码后的秘密分散等‘运算’时不需要参考信息,但是需要在主存储器中确保用于存储得到的运算值的Sss的区域。即,不会同时需要Sref以及Sss这双方的区域。只要能够在主存储器中确保max(Sref,Sss)的区域就足够。
缓冲区大小计算部得到表示在运算处理时从文本文件的字符串集中读入的数据的文件缓冲区大小f的‘f0/np的函数值’(作为文件缓冲区大小而得到f0/np的函数值)并输出。例如,可以是f=f0/np,可以是f=ROUNDUP(f0/np),可以是f=ROUNDDOWN(f0/np),也可以是f=ROUND(f0/np)。f0如上述的那样,np可以通过并行数计算部得到,也可以从f0、I、r、Scsv得到。即,只要得到f0/np的函数值,则也可以不必在f0/np的函数值的生成中使用通过并行数计算部得到的np。这里,若设np=f0/I·r·Scsv,则f0/np=I·r·Scsv。这与为了将相当于r记录的量的处理反复进行I次而从文本文件读入的字符串的文件缓冲区大小f对应。文件缓冲区大小f较大的一方接近序列加速器而为高速,但是需要的主存储器的存储容量变大。如上述那样得到的文件缓冲区大小f是在预先决定的主存储器大小M的限制下实现高速的处理的大小。
<运算装置(普通版)>
运算装置进行对于被输入的文本文件的字符串的运算处理。运算装置在该运算处理中使用通过参数设定装置得到的记录数r以及并行数np。在参数设定装置中进一步得到文件缓冲区大小f的情况下,运算装置在该运算处理中进一步使用通过参数设定装置得到的文件缓冲区大小f。在通过参数设定装置没有得到文件缓冲区大小f的情况下,运算装置可以使用预先决定的值作为文件缓冲区大小f,也可以使用与属性信息对应的其它的文件缓冲区大小f。
有时文本文件包含不是秘密分散等‘运算’的对象的字符。例如,CSV文件中的逗号是表示单元的分隔的字符而非‘运算’的对象。有时在CSV文件中单元的字符串被双引号‘“’‘”’包围,但是双引号也不是‘运算’的对象。表示换行的字符(例如,¥n)等也不是‘运算’的对象(这些双引号‘“’‘”’不被包含在单元中)。设为将这样的不是‘运算’的字符称为‘特殊字符’。也有以下形式,即在单元内中特殊字符之前附加转义字符,允许将特殊字符作为‘运算’的对象的字符进行处理。在这样的情况下,有时通过单元内的各字符单独无法判别该字符是否表示‘运算’的对象,无法判别单元之间的分隔。例如,有在作为‘运算’的对象而使用双引号‘“’的情况下,作为转义字符而进一步附加‘“’的形式。例如,在将单元的‘123“456’这样的值设为‘运算’的对象的情况下,有时将该单元记述为“123““456”。在这样的情况下,若不能从开头依次读入单元“123““456”则无法识别单元间的分隔。例如,在仅读入了后半部分的“456”的情况下,无法识别这是表示‘456’的一个单元,还是表示包含‘“456’的值的单元的一部分。此外,有在使用表示换行的字符‘¥n’作为‘运算’的对象的情况下进一步附加‘¥’作为转义字符的形式。例如,在将单元的‘123¥n456’这样的值设为‘运算’的对象的情况下,有将该单元记述为“123¥¥n456”的情况。在这样的情况下,若不从开头依次读入单元“123¥¥n456”,则无法判别单元间的分隔。在这样的情况下,无法并行地进行用于确定文本文件的各单元的位置以及长度的处理,必须从文本文件的开头依次进行该处理。
能够应对这样的形式的文本文件的运算装置具有主存储器、高速缓冲存储器和多个处理部。各处理部包括:读入部、文件读入锁(lock)解除部、解析(parse)部、缓冲区边界锁解除部、编码部、运算部、以及并行性锁解除部。这些多个处理部被分配给任意的线程的处理。进行线程i的处理的处理部进行以下的处理。而且,i表示各线程,i∈{0,…,T-1},T是表示与文本文件的字符串的大小TS对应的线程数的正整数,1≦np≦T。例如,在各线程i中对于从文本文件读入的字符串的大小TSi,满足TS=TS0+…+TST-1或者TS≦TS0+…+TST-1,或者,满足f·T≥TS。而且,设在初始状态下线程0的文件读入锁以及缓冲区边界锁以及线程0,…,np-1的并行性锁被解除。
在线程i的文件读入锁以及并行性锁被解除后,读入部从文本文件的字符串读入能够存储在文件缓冲区大小f的区域中的字符串Si并存储在主存储器中。在i=0的情况下,字符串S0是将文本文件的开头的字符设为前端的‘能够存储在文件缓冲区大小f的区域中的数据量的字符串’。在i≥1的情况下,字符串Si是将紧靠线程i-1中读入的字符串Si-1的终端的字符之后的字符设为前端的‘能够存储在文件缓冲区大小f的区域中的数据量的字符串’。‘能够存储在文件缓冲区大小f的区域中的字符串’例如可以是能够存储在文件缓冲区大小f的区域中的最长的字符串,也可以是能够存储在从文件缓冲区大小f减去了常数后的大小的区域中的最长的字符串。
在字符串Si被存储在主存储器后,文件读入锁解除部解除线程i+1的文件读入锁。由此,能够防止多个线程下的对主存储器的访问相互竞争。其中,与i+1>T对应的线程不存在,不存在的线程的文件读入锁不会被解除。
在线程i的缓冲区边界锁被解除后,解析部计算表示字符串Si中包含的各单元的位置以及长度的参考信息并存储在主存储器中。例如,解析部确定字符串Si的各单元,并计算确定出的各单元的参考信息,存储在主存储器中。例如,解析部根据位于单元的边界的信息(例如,分隔字符或者换行)确定各单元,计算确定出的各单元的参考信息,存储在主存储器中。在i=0的情况下,有字符串S0中包含的终端的字符为单元的终端的情况和不为单元的终端的情况。在符串S0中包含的终端的字符不为单元的终端的情况下,在线程0中无法确定包含终端的字符的单元,其参考信息也无法计算。在i≥1的情况下,有字符串Si的始端的字符为单元的始端的情况和不为单元的始端的情况,有字符串Si中包含的终端的字符为单元的终端的情况和不为单元的终端的情况。在字符串Si的始端的字符不为单元的始端的情况下,仅从字符串Si无法确定包含字符串Si的始端的字符的单元。在该情况下,解析部使用字符串Si-1中的在线程i-1中确定出的单元中不包含的字符、以及字符串Si,确定包含字符串Si的始端的字符的单元。在字符串Si中包含的终端的字符不为单元的终端的情况下,在线程i中无法确定包含终端的字符的单元,其参考信息也无法计算。另外,在文本数据的终端的字符串ST-1中包含的终端的字符为单元的终端。通过使用与被确定的单元对应的参考信息,能够确定该单元所属于的记录和与该单元对应的属性(例如,表示是从该记录的最初起第几个属性的信息)。在主存储器中存储参考信息的区域变得不足时,解析部在主存储器中集中确保用于存储相当于r记录的量的参考信息的缓冲区区域。在缓冲区区域的确保中需要规定的处理(开销)。不是按对每1个记录确保缓冲区区域,而是通过按与单位处理对应的每r记录集中确保缓冲区区域,从而能够抑制开销,并且对可变长度的记录进行处理。
在计算了表示字符串Si中包含的各单元的位置以及长度的参考信息后,缓冲区边界锁解除部解除线程i+1的缓冲区边界锁。不存在与i+1>T对应的线程,不存在的线程的缓冲区边界锁不会被解除。
在线程i+1的缓冲区边界锁解除后,编码部基于根据参考信息确定的信息,从文本数据选择结合字符串CSi中包含的作为处理对象的相当于r记录的量的字符串即处理单位字符串PSi,j,利用高速缓冲存储器进行将选择出的处理单位字符串PSi,j编码为规定的有限集合的元即编码信息Ei,j的处理。处理单位字符串PSi,j的始端为任意的记录的始端,处理单位字符串PSi,j的终端为任意的记录的终端。i=0的情况下的结合字符串CS0为S0,i≥1的情况下的结合字符串CSi为在紧靠结合字符串CSi-1之后结合了字符串Si的字符串,J为正整数,j=0,…,J-1。例如,在字符串Si的字符数为相当于r记录的量的字符数以上的情况下,编码部从字符串Si选择处理单位字符串PSi,j,或者,从结合了字符串Si和字符串Si-1的字符串选择处理单位字符串PSi,j。在字符串Si的字符数不足相当于r记录的量的字符数的情况下,编码部从结合了从字符串Si至字符串Si’为止后的字符串中选择处理单位字符串PSi,j。其中,0≦i’≦i-1。在i=0的情况下,编码部从字符串S0的开头选择处理单位字符串PS0,0,…,PS0,J-1。在i≥1的情况下,编码部选择字符串Si-1中的、以未被选择作为处理单位字符串的字符作为开头的处理单位字符串PSi,0,…,PSiJ-1。在J≥2的情况下,紧靠PSi,j-1之后PSi,j继续。
编码部对每个处理单位字符串PSi,j进行编码。在文本数据中数据以代码指向进行排列(数据以记录1,记录2,…,记录W的顺序排列),全部的记录对应于相互相同的“属性的组”。一般地,与持续处理不同种类的数据相比,持续处理同种数据的情况下处理速度较快。因此,希望编码部持续进行处理单位字符串PSi,j中的与相同的属性信息对应的相当于r记录的量的r个单元的编码。编码部基于根据参考信息确定的信息而选择处理单位字符串PSij,将选择出的处理单位字符串PSi,j编码为编码信息Ei,j。通过将在该处理的过程中所需要的相当于r记录的量的参考信息、处理单位字符串PSi,j、编码信息Ei,j存储在高速缓冲存储器中进行运算,能够进行高速的处理。如上述那样通过使用与C/(Scsv+Senc+Sref)对应的记录数r,这样的处理变得可能。
运算部利用高速缓冲存储器进行对编码信息Ei,j进行特定的‘运算’而得到运算值SSi,j并存储在主存储器中的处理。希望运算部持续进行与对应于相同的属性信息的相当于r记录的量的r个单元对应的‘运算’。在该处理的过程中,也通过将相当于r记录的量的参考信息、处理单位字符串PSi,j、编码信息Ei,j存储在高速缓冲存储器中进行运算,高速的处理变得可能。
在得到运算值SSi,j后,并行性锁解除部解除线程i+np的并行性锁。其中,与i+np>T对应的线程不存在,不存在的线程的并行性锁不会被解除。之后,进行了线程i的处理后的处理部被开放,该处理部能够进行其它线程的处理。
<运算装置(高速版)>
在文本文件的各单元仅包含能够单独判别是否表示‘运算’的对象的字符的情况下,能够并行地进行用于确定文本文件的各单元的位置以及长度的处理,能够进行更高速的运算。例如,在不使用转义字符(escape character)的文本文件的情况下能够进行这样的并行处理。能够应对这样的文本文件的运算装置包括主存储器、高速缓冲存储器、多个处理部。各处理部包括:读入部、文件读入锁解除部、解析部、单元确定部、缓冲区边界锁解除部、编码部、运算部、并行性锁解除部。这些多个处理部被分配给任意的线程的处理。进行线程i的处理的处理部进行以下的处理。设为在初始状态下,线程0的文件读入锁以及缓冲区边界锁以及线程0,…,np-1的并行性锁被解除。
在线程i的文件读入锁以及并行性锁被解除后,读入部从文本文件的字符串读入能够存储在文件缓冲区大小f的区域中的字符串Si,存储在主存储器中。其细节与运算装置(普通版)相同。
在字符串Si被存储在主存储器中后,文件读入锁解除部解除线程i+1的文件读入锁。其细节与运算装置(普通版)相同。
解析部计算表示字符串Si中包含的各单元的位置以及长度的参考信息,存储在主存储器中。解析部能够在线程i的缓冲区边界锁被解除之前开始该处理。即,在i≥1的情况下,解析部能够在表示字符串Si-1中包含的各单元的位置以及长度的参考信息的计算结束之前开始表示字符串Si中包含的各单元的位置以及长度的参考信息的计算。例如,解析部确定字符串Si的单元,计算确定出的各单元的参考信息,存储在主存储器中。例如,解析部根据位于单元的边界的信息(例如,分隔字符或者换行)确定单元,计算确定出的各单元的参考信息,存储在主存储器中。在i=0的情况下,有字符串S0中包含的终端的字符是单元的终端的情况和不是单元的终端的情况。在字符串S0中包含的终端的字符不是单元的终端的情况下,解析部无法确定包含终端的字符的单元,其参考信息也无法计算。在i≥1的情况下,有字符串Si的始端的字符为单元的始端的情况和不是单元的始端的情况,有在字符串Si中包含的终端的字符是单元的终端的情况和不是单元的终端的情况。在字符串Si的始端的字符不是单元的始端的情况下,解析部无法确定包含字符串Si的始端的字符的单元,其参考信息也无法计算。在字符串Si中包含的终端的字符不是单元的终端的情况下,解析部无法确定包含终端的字符的单元,其参考信息也无法计算。另外,终端的字符串ST-1中包含的终端的字符是单元的终端。另外,在主存储器中存储参考信息的区域变得不足时,解析部在主存储器中集中确保用于存储相当于r记录的量的参考信息的缓冲区区域。由此,能够抑制开销,并且能够对可变长度的记录进行处理。
在i≥1的情况下,字符串Si是紧接字符串Si-1之后的字符串。在i≥1的情况下,单元确定部在线程i的缓冲区边界锁被解除之后,使用参考信息、字符串Si-1、字符串Si,得到与紧接字符串Si-1中包含的最后的单元之后接续的单元的位置对应的信息Ai,存储在主存储器中。信息Ai例如可以是表示紧接字符串Si-1中包含的最后的单元之后接续的单元所属于的记录的信息、和表示与该单元对应的属性的信息(例如,表示与从该记录的最初起第几个属性对应的信息),也可以是表示紧接字符串Si-1中包含的最后的单元之后接续的单元的位置以及长度的信息。在字符串Si-1的终端是单元的终端的情况下,字符串Si的开头的单元成为“紧接字符串Si-1中包含的最后的单元之后接续的单元”。在该情况下,信息Ai的向主存储器的存储也可以被省略。另一方面,在字符串Si-1的终端不是单元的终端的情况下,单元确定部使用字符串Si-1和字符串Si,生成“紧接字符串Si-1中包含的最后的单元之后接续的单元”,得到信息Ai。由此,得到与解析部无法确定的单元的位置对应的信息。通过参考信息和信息Ai,能够确定文本文件的各单元所属于的记录和与该单元对应的属性(例如,表示是从该记录的最初起第几个属性的信息)。而且,在i=0的情况下,单元确定部什么都不做。
在得到了信息Ai之后,缓冲区边界锁解除部解除线程i+1的缓冲区边界锁。其细节与运算装置(普通版)相同。之后,进行了线程i的处理的处理部被开放,该处理部能够进行其它线程的处理。
之后,编码部基于根据参考信息以及信息Ai确定的信息,选择结合字符串CSi中包含的作为处理对象的相当于r记录的量的字符串即处理单位字符串PSi,j,利用高速缓冲存储器进行将处理单位字符串PSi,j编码为规定的有限集合的元即编码信息Ei,j的处理。除了使用参考信息还使用信息Ai以外,其细节与运算装置(普通版)相同。
运算部利用高速缓冲存储器进行对编码信息Ei,j进行特定的‘运算’而得到运算值SSi,j并存储在主存储器中的处理。其细节与运算装置(普通版)相同。
在得到了运算值SSi,j后,并行性锁解除部解除线程i+np的并行性锁。其细节与运算装置(普通版)相同。
[第一实施方式]
使用附图对第一实施方式进行说明。在第一实施方式中,说明参数设定装置对在一个单位处理中被处理的记录数r、并行数np、文件缓冲区大小f进行设定,运算装置(普通版)进行能够使用转义字符的CSV(Comma-Separated Values,逗号分隔值)文件(文本文件)的秘密分散(运算)的例子。以下,以与此前说明的事项的不同点为中心进行说明,有时对于已经说明的事项省略说明。
<结构>
如图1中例示的那样,本实施方式的运算系统1包括参数设定装置11、运算装置12、以及N个服务器装置13-1~13-N。其中,N为2以上的正整数。能够进行从参数设定装置11至运算装置12的信息的传递,能够进行从运算装置12至服务器装置13-1~13-N的信息的传递。而且,信息的传递可以经由网络进行,可以使用其它的通信手段进行,也可以经由可移动的记录介质进行。
如图2中例示的那样,参数设定装置11包括输入部111a、输出部111b、存储部112、控制部113、最大大小设定部114a、最小大小设定部114b、编码大小设定部114c、运算大小设定部114d、参考大小设定部114e、处理单位计算部114f、并行数计算部114g、以及缓冲区大小计算部114h。参数设定装置11在控制部113的控制下执行各处理。在参数设定装置11中得到的各值被存储在存储部112中,根据需要从存储部112读出后被用于其它处理。
如图3中例示的那样,运算装置12包括输入部121a、输出部121b、辅助存储部122、主存储器123、控制部125、以及处理部126-1~126-Q。其中,Q为2以上的整数。运算装置12在控制部125的控制下执行各处理。
如图4中例示的那样,处理部126-q(其中,q=1,…,Q)包括高速缓冲存储器1260-q、读入部1261-q、解析部1262-q、编码部1265-q、运算部1266-q、文件读入锁解除部1267-q、缓冲区边界锁解除部1268-q、以及并行性锁解除部1269-q。
<参数设定处理>
使用图5,对参数设定装置11的参数设定处理进行说明。
运算处理对象的文本数据的属性信息被输入到参数设定装置11(图2)的输入部111a,被存储在存储部112中。属性信息可以从文本数据读入,也可以从文本数据以外被提供(步骤S111a)。
最大大小设定部114a将从存储部112读出的属性信息设为输入,设定并输出文本文件的相当于1记录的量的字符串的大小的最大值Scsv(步骤S114a)。
最小大小设定部114b将从存储部112读出的属性信息设为输入,设定并输出相当于1记录的量的字符串的大小的最小值scsv(步骤S114b)。
编码大小设定部114c将从存储部112读出的属性信息设为输入,根据表示编码信息所属于的‘规定的有限集合’的信息,设定并输出将相当于1记录的量的字符串编码(变换)为规定的有限集合的元而得到的编码信息的合计大小的最大值Senc。本实施方式的编码信息所属于的‘规定的有限集合’是被进行秘密分散的有限集合,被预先决定(步骤S114c)。
运算大小设定部114d将从存储部112读出的属性信息设为输入,根据编码信息所属于的规定的有限集合以及秘密分散方式,设定并输出通过相当于1记录的量的编码信息的秘密分散(运算)而得到的秘密分散值(运算值)的合计大小的最大值Sss。本实施方式的秘密分散方式被预先决定(步骤S114d)。
参考大小设定部114e将从存储部112读出的属性信息设为输入,设定并输出表示文本文件内的相当于1记录的量的单元各自的位置以及长度的参考信息的合计大小Sref(步骤S114e)。
处理单位计算部114f将Scsv、Senc以及Sref设为输入,得到并输出C/(Scsv+Senc+Sref)的函数值r(在1次的单位处理中被处理的记录数r,即处理单位字符串包含的记录数r)。高速缓冲存储器大小C可以被预先决定,也可以被输入(步骤S114f)。
并行数计算部114g将Scsv、scsv、Sref、Senc、I以及r设为输入,得到并输出f0/I·r·Scsv的函数值np(运算处理中的并行数np)。f0是scsv·M/(scsv+Senc+max(Sref,Sss))的函数值。主存储器大小M可以被预先决定,也可以被输入(步骤S114g)。
缓冲区大小计算部114h将f0以及np设为输入,得到并输出f0/np的函数值f(在运算处理时从文本文件的字符串集中读入的数据的文件缓冲区大小f)(步骤S114h)。
输出部111b输出如上述那样得到的r、np、f(步骤S111b)。
<运算处理>
使用图6至图12,对运算装置12的运算处理进行说明。
如图6中例示的那样,从参数设定装置11输出的r、np、f被输入到运算装置12(图3)的输入部121a,被存储在辅助存储部122中(步骤S111aa)。此外,运算处理对象的文本数据被输入到输入部121a,存储在辅助存储部122中。在图9至图12中例示文本数据。图9中例示的文本数据是各单元被以双引号包围的CSV文件。在使用双引号‘“’作为单元的值的情况下,在其之前付加‘“’作为转义字符。例如,“4selddks““k304kdkk400-03d”表示‘4selddks“k304kdkk400-03d’这样的秘密分散对象的值。如图10中例示的那样,该文本文件包含W个记录rec(1),…,rec(W),记录rec(w)(其中,w=1,…,W)的每一个包含任意长度的G个单元cell(w,g)(其中,g=1,…,G),单元cell(w,g)的每一个包含任意个字符。单元cell(w,g)与记录rec(w)的从最初起第g个属性att(g)对应(步骤S111ab)。
之后r、np、f被从辅助存储部122读入主存储器123,线程i=0,…,T-1的运算处理被执行。运算处理从i=0的线程开始。而且,在初始状态下线程0的文件读入锁以及缓冲区边界锁以及线程0,…,np-1的并行性锁被解除。控制部125将处理部126-1~126-Q中未被使用的处理部126-q分配给线程i,尽可能多个线程并行地执行各线程i的处理(步骤S126)。由此得到的各秘密分散值被从输出部121b输出,分别送至各服务器装置13-1~13-N,存储在各服务器装置13-1~13-N中(步骤S111b)。以下对线程i的处理的细节进行说明。
《线程i的处理》
如图7以及图8中例示的那样,进行线程i的处理的处理部126-q的读入部1261-q判定线程i的文件读入锁以及并行性锁两方是否已被解除。线程0的文件读入锁以及并行性锁在初始状态下被解除(步骤S1261a-q)。在线程i的文件读入锁以及并行性锁的两方未被解除的情况下反复进行步骤S1261a-q的判定。
另一方面,在线程i的文件读入锁以及并行性锁这双方被解除的情况下,读入部1261-q从主存储器123读入文件缓冲区大小f,在主存储器123中确保文件缓冲区大小f的区域。进而,读入部1261-q从辅助存储部122中存储的文本文件的字符串读入能够存储在文件缓冲区大小f的区域的字符串Si。在图11的例子中,作为字符串S0读入以下内容。
“石田”,“太郎”,“1990/2/8”,“100-0002”,“sjeifdfgjrrf”,“45dkfjkejdf5”
“石田”,“次郎”,“1985/5/2”,“111-0112”,“25df4d4ed”,“1s4dlccclseed”
“石田”,“花子”,“2001/4/8”,“111-2222”,“5d4e4d4ffg”,“skekdjjfaae”
“佐藤”,“太郎”,“1992/7/11”,“111-0345”,“dlekd4f3e”,“4selddks“
在图12的例子中,作为字符串S1读入以下内容。
“k304kdkk400-03d”
“佐藤”,“次郎”,“1989/8/21”,“123-0434”,“dkesopd445e”,“4ssjdejdoseae3230dds”“佐藤”,“花子”,“1995/2/3”,“145-0234”,“skdeofl4s3d3”,“skek94kdskd4dc”
“田中”,“太郎”,“1992/3/23”,“134-0134”,“dj394949495kf”,“47s52\n5412485d”
“田中”,“次郎”,“1979/4/21”,“11
读入部1261-q在主存储器123中确保的文件缓冲区大小f的区域中存储字符串Si(图7的步骤S1261b-q,图8的Ri)。
在字符串Si被存储在主存储器123中后,文件读入锁解除部1267-q解除线程i+1的文件读入锁(图7的步骤S1267-q,图8的URi+1)。
解析部1262-q判定线程i的缓冲区边界锁是否已被解除。线程0的缓冲区边界锁在初始状态下被解除(步骤S1262a-q)。在线程i的缓冲区边界锁未被解除的情况下反复进行步骤S1262a-q的判定。
另一方面,在线程i的缓冲区边界锁被解除的情况下,解析部1262-q判定是否i≥1(步骤S1262b-q)。在不是i≥1的情况下(即,i=0的情况下),解析部1262-q解析从主存储器123读出的字符串Si,计算表示字符串Si中包含的各单元的位置以及长度的参考信息,存储在主存储器123中。例如,在图11中例示的字符串S0的情况下,解析部1262-q解析字符串S0,确定单元‘石田’‘太郎’‘1990/2/8’‘100-0002’‘sjeifdfgjrrf’‘45dkfjkejdf5’‘石田’‘次郎’‘1985/5/2’‘111-0112’‘25df4d4ed’‘1s4dlccclseed’‘石田’‘花子’‘2001/4/8’‘111-2222’‘5d4e4d4ffg’‘skekdjjfaae’‘佐藤’‘太郎’‘1992/7/11’‘111-0345’‘dlekd4f3e’,计算它们的参考信息。由于最后的‘“4selddks“’的终端不是单元的终端,所以在线程0中‘“4selddks“’的参考信息不会被计算。在主存储器123中存储参考信息的区域变得不足时,解析部1262-q从主存储器123读入r,在主存储器123中集中确保用于存储相当于r记录的量的参考信息的缓冲区区域。之后,处理进至步骤S1268-q(图7的步骤S1262c-q,图8的Pi)。另一方面,在i≥1的情况下,解析部1262-q从主存储器123读入线程i-1中的解析结果(确定出的各单元的参考信息以及用于确定未被包含在单元中的字符的信息),确定字符串Si-1中的在线程i-1中确定出的单元中不包含的字符。在字符串Si-1的终端为单元的终端的情况下,在字符串Si-1中不存在线程i-1中确定出的单元不包含的字符(步骤S1262d-q)。接着解析部1262-q从主存储器123读出字符串Si,对将在线程i-1中确定出的单元中不包含的字符与字符串Si结合后的字符串进行解析,计算表示该字符串中包含的各单元的位置以及长度的参考信息,存储在主存储器123中。在字符串Si-1的终端为单元的终端的情况下,解析部1262-q解析字符串Si,计算表示字符串Si中包含的各单元的位置以及长度的参考信息,存储在主存储器123中。例如,在图11以及图12中例示的字符串S0以及S1的情况下,解析部1262-q解析字符串Si-1中的在线程i-1中确定出的单元中不包含的字符‘“4selddks“’与字符串Si-1结合后的字符串
“4selddks““k304kdkk400-03d”
“佐藤”,“次郎”,“1989/8/21”,“123-0434”,“dkesopd445e”,“4ssjdejdoseae3230dds”
“佐藤”,“花子”,“1995/2/3”,“145-0234”,“skdeofl4s3d3”,“skek94kdskd4dc”
“田中”,“太郎”,“1992/3/23”,“134-0134”,“dj394949495kf”,“47s52\n5412485d”
“田中”,“次郎”,“1979/4/21”,“11
,计算表示该字符串中包含的各单元‘4selddks““k304kdkk400-03d’‘佐藤’‘次郎’‘1989/8/21’‘123-0434’‘dkesopd445e’‘4ssjdejdoseae3230dds’‘佐藤’‘花子’‘1995/2/3’‘145-0234’‘skdeofl4s3d3’‘skek94kdskd4dc’‘田中’‘太郎’‘1992/3/23’‘134-0134’‘dj394949495kf’‘47s52\n5412485d’‘田中’‘次郎’‘1979/4/21’的位置以及长度的参考信息,存储在主存储器123中。最后的“11的终端不是单元的终端,所以在线程1中不计算“11的参考信息。在主存储器123中用于存储参考信息的区域变得不足时,解析部1262-q从主存储器123读入r,在主存储器123中集中确保用于存储相当于r记录的量的参考信息的缓冲区区域。之后,处理进至步骤S1268-q(图7的步骤S1262e-q,图8的Pi)。
在步骤S1268-q中,缓冲区边界锁解除部1268-q解除线程i+1的缓冲区边界锁。其中,与i+1>T对应的线程不存在,不存在的线程的缓冲区边界锁不会被解除(图7的步骤S1268-q,图8的UBi+1)。
之后,编码部1265-q基于根据参考信息确定的信息,从文本数据选择结合字符串CSi中包含的作为处理对象的相当于r记录的量的字符串即处理单位字符串PSi,j(其中,j=0,…,J-1),将处理单位字符串PSi,j以及与处理单位字符串PSi,j对应的相当于r记录的量的参考信息存储在高速缓冲存储器1260-q中。在设为r=2的图11以及图12的例子中,从结合字符串CS0=S0选择处理单位字符串PS0,0,从结合字符串CS1=S0+S1选择处理单位字符串PS1,0以及PS1,1(步骤S1263-q)。编码部1265-q使用高速缓冲存储器1260-q的处理单位字符串PSi,j以及参考信息,将处理单位字符串PSi,j编码为规定的有限集合的元即编码信息Ei,j,将编码信息Ei,j存储在高速缓冲存储器1260-q中(图7的步骤S1265-q,图8的Ei)。
运算部1266-q进行从高速缓冲存储器1260-q读出的编码信息Ei,j的秘密分散而得到秘密分散值(运算值)SSi,j,存储在主存储器123中。这时,不需要将与处理单位字符串PSi,j对应的相当于r记录的量的参考信息存储在主存储器123中,因此秘密分散值SSi,0,…,SSi,J-1也可以被覆写在存储了该相当于r记录的量的参考信息的区域上(图7的步骤S1265-q,图8的SSi)。
之后,并行性锁解除部1269-q从主存储器123读入np,解除线程i+np的并行性锁。其中,与i+np>T对应的线程不存在,不存在的线程的并行性锁不会被解除。之后,控制部125解除对线程i的处理部126-q的分配。由此,能够将处理部126-q分配给其它线程(图7的步骤S1269-q,图8的UPi+np)。
[第二实施方式]
在第二实施方式中,说明参数设定装置对在一个单位处理中被处理的记录数r、并行数np、文件缓冲区大小f进行设定,运算装置(高速版)进行禁止了转义字符的使用的CSV(Comma-Separated Values)文件(文本文件)的秘密分散(运算)的例子。
<结构>
如图1中例示的那样,本实施方式的运算系统2包括参数设定装置11、运算装置22、以及N个服务器装置13-1~13-N。能够从参数设定装置11向运算装置22传递信息,能够从运算装置22向服务器装置13-1~13-N传递信息。
如图2中例示的那样,参数设定装置11包括输入部111a、输出部111b、存储部112、控制部113、最大大小设定部114a、最小大小设定部114b、编码大小设定部114c、运算大小设定部114d、参考大小设定部114e、处理单位计算部114f、并行数计算部114g、以及缓冲区大小计算部114h。参数设定装置11在控制部113的控制下执行各处理。通过参数设定装置11得到的各值被存储在存储部112中,被根据需要从存储部112读出而用于其它处理。
如图3中例示的那样,运算装置22包括输入部121a、输出部121b、辅助存储部122、主存储器123、控制部125、以及处理部226-1~226-Q。其中,Q为2以上的整数。运算装置12在控制部125的控制下执行各处理。
如图4中例示的那样,处理部226-q(其中,q=1,…,Q)包括高速缓冲存储器1260-q、读入部2261-q、单元确定部2264-q、解析部1262-q、编码部1265-q、运算部1266-q、文件读入锁解除部1267-q、缓冲区边界锁解除部1268-q、以及并行性锁解除部1269-q。
<参数设定处理>
与第一实施方式相同。
<运算处理>
使用图6以及图13至图18,对运算装置22的运算处理进行说明。
如图6中例示的那样,从参数设定装置11输出的r、np、f被输入到运算装置22(图3)的输入部121a,存储在辅助存储部122中(步骤S111aa)。此外,运算处理对象的文本数据被输入到输入部121a,存储在辅助存储部122中。从图15至图18例示文本数据。图15中例示的文本数据是各单元没有被双引号包围的CSV文件。本实施方式的文本数据中的转义字符的使用未被允许,各单元仅包含能够单独判别是否表示秘密分散(运算)的对象的字符。如图16中例示的那样,该文本文件包含W个记录rec(1),…,rec(W),记录rec(w)(其中,w=1,…,W)的每一个包含任意长度的G个单元cell(w,g)(其中,g=1,…,G),单元cell(w,g)的每一个包含任意个字符。单元cell(w,g)与从记录rec(w)的最初起第g个属性att(g)对应(步骤S211ab)。
之后,r、np、f从辅助存储部122被读入主存储器123,线程i=0,…,T-1的运算处理被执行。运算处理从i=0的线程开始。而且,在初始状态下,线程0的文件读入锁以及线程0,…,np-1的并行性锁被解除。控制部125将处理部226-1~226-Q中未被使用的处理部226-q分配给线程i,尽可能多个线程并行地执行各线程i的处理(步骤S226)。由此得到的各秘密分散值从输出部121b被输出,被分别送至各服务器装置13-1~13-N,存储在各服务器装置13-1~13-N中(步骤S111b)。以下对线程i的处理的细节进行说明。
《线程i的处理》
如图13以及图14中例示的那样,进行线程i的处理的处理部226-q的读入部1261-q判定线程i的文件读入锁以及并行性锁这双方是否已被解除。线程0的文件读入锁以及并行性锁在初始状态下被解除(步骤S1261a-q)。在线程i的文件读入锁以及并行性锁这双方未被解除的情况下,反复进行步骤S1261a-q的判定。
另一方面,在线程i的文件读入锁以及并行性锁这双方被解除的情况下,读入部1261-q从主存储器123读入文件缓冲区大小f,在主存储器123中确保文件缓冲区大小f的区域。进而,读入部1261-q从辅助存储部122中存储的文本文件的字符串读入能够存储在文件缓冲区大小f的区域中的字符串Si。在图17的例子中,作为字符串S0读入以下内容。
石田,太郎,1990/2/8,100-0002,东京都涉谷区〇〇〇,03-3234-5678
石田,次郎,2000/4/2,274-16,神奈川县藤泽市江之岛〇〇〇,03-9999-9999
石田,花子,1985/6/2,352-725,东京都港区〇〇〇,03-1111-9999
佐藤,太郎,2001/5/1,100-0002,东京都千代田区〇〇〇,03-3234-5678
佐藤,次
在图18的例子中,作为字符串S1读入以下内容。
郎,2001/6/2,274-16,神奈川县藤泽市江之岛〇〇〇,03-9999-9999
佐藤,花子,2002/7/2,352-725,东京都新宿区新宿〇〇〇,03-1111-9999
田中,太郎,2001/1/1,100-0002,东京都千代田区〇〇〇,03-1234-5678
田中,次郎,2001/1/2,251-0036,神奈川县藤泽市江之岛〇〇〇
读入部1261-q在主存储器123中确保的文件缓冲区大小f的区域中存储字符串Si(图13的步骤S1261b-q,图14的Ri)。
在字符串Si被存储在主存储器123中后,文件读入锁解除部1267-q解除线程i+1的文件读入锁(图13的步骤S1267-q,图14的URi+1)。
解析部2262-q解析从主存储器123读出的字符串Si,计算表示字符串Si中包含的各单元的位置以及长度的参考信息,存储在主存储器123中。例如,在图17中例示的字符串S0的情况下,解析部2262-q解析字符串S0,确定单元‘石田’‘太郎’‘1990/2/8’‘100-0002’‘东京都涉谷区〇〇〇’‘03-3234-5678’‘石田’‘次郎’‘2000/4/2’‘274-16’‘神奈川县藤泽市江之岛〇〇〇’‘03-9999-9999’‘石田’‘花子’‘1985/6/2’‘352-725’‘东京都港区〇〇〇’‘03-1111-9999’‘佐藤’‘太郎’‘2001/5/1’‘100-0002’‘东京都千代田区〇〇〇’‘03-3234-5678’‘佐藤’,计算它们的参考信息。最后的‘次’的终端不是单元的终端,所以在线程0中不计算‘次’的参考信息。例如,在图18中例示的字符串S1的情况下,解析部2262-q解析字符串S1,确定单元‘2001/6/2’‘274-16’‘神奈川县藤泽市江之岛〇〇〇’‘03-9999-9999’‘佐藤’‘花子’‘2002/7/2’‘352-725’‘东京都新宿区新宿〇〇〇’‘03-1111-9999’‘田中’‘太郎’‘2001/1/1’‘100-0002’‘东京都千代田区〇〇〇’‘03-1234-5678’‘田中’‘次郎’‘2001/1/2’‘251-0036’‘神奈川县藤泽市江之岛〇〇〇’,计算它们的参考信息。在最初的‘郎’的始端不是单元的始端,因此在线程1中不计算“郎”的参考信息。而且,在主存储器123中用于存储参考信息的区域变得不足时,解析部2262-q从主存储器123读入r,在主存储器123中集中确保用于存储相当于r记录的量的参考信息的缓冲区区域。解析部2262-q可以在线程i的缓冲区边界锁被解除之前开始该处理。即,-在i≥1的情况下,解析部2262-q能够在字符串Si-1中包含的各单元的参考信息的计算结束之前开始字符串Si中包含的各单元的参考信息的计算(图13的步骤S2262-q,图14的Pi)。
之后,单元确定部2264-q判定线程i的缓冲区边界锁是否已被解除。线程0的缓冲区边界锁在初始状态下被解除(步骤S2264a-q)。在线程i的缓冲区边界锁未被解除的情况下,反复进行步骤S2264a-q的判定。
另一方面,在线程i的缓冲区边界锁被解除、且i≥1的情况下,单元确定部2264-q使用参考信息、字符串Si-1和字符串Si,得到紧接与字符串Si-1中包含的最后的单元之后接续的单元的位置对应的信息Ai,存储在主存储器中。另一方面,在线程i的缓冲区边界锁被解除、且i=0的情况下,单元确定部2264-q不进行任何操作(步骤S2264b-q)。
之后,缓冲区边界锁解除部1268-q解除线程i+1的缓冲区边界锁。其中,与i+1>T对应的线程不存在,不存在的线程的缓冲区边界锁不会被解除(图13的步骤S1268-q,图14的UBi+1)。
之后,取代处理部126-q,处理部226-q的编码部1265-q以及运算部1266-q执行在第一实施方式中说明过的步骤S1263-q、S1265-q、S1269-q的处理(图13的步骤S1263-q、S1265-q、S1269-q、图14的Ei,SSi,UPi+np)。
[其它变形例等]
而且,本发明不限于上述的实施方式。例如,在第一实施方式以及第二实施方式中,参数设定装置设定了在一个单位处理中被处理的记录数r、并行数np、文件缓冲区大小f,但是也可以是参数设定装置不设定文件缓冲区大小f的实施方式。而且,在第一实施方式以及第二实施方式中,例示了CSV(Comma-Separated Values)文件作为文本文件,但是也可以进行对于上述的其它文本文件的处理。进而,在第一实施方式以及第二实施方式中,说明了进行秘密分散作为‘运算’的例子,但是也可以进行其它运算作为‘运算’。
上述的各种处理不仅可以按照记载而以时间序列被执行,也可以根据执行处理的装置的处理能力或者根据需要而并行地或者单独地被执行。此外,不言而喻,在不脱离本发明的宗旨的范围中能够适当变更。
上述的各装置例如通过具有CPU(中央处理单元(central processing unit))等的处理器(硬件/处理器)以及RAM(随机存取存储器(random-access memory))/ROM(只读存储器(read-only memory))等存储器等的通用或者专用的计算机执行规定的程序而构成。该计算机可以具有1个处理器或存储器,也可以具有多个处理器或存储器。该程序可以安装在计算机中,也可以预先记录在ROM等中。而且,也可以不是CPU那样通过读入程序而实现功能结构的电路(circuitry),而是使用不使用程序而实现处理功能的电路来构成一部分或者全部的处理部。构成1个装置的电路也可以包含多个CPU。
在通过计算机实现上述结构的情况下,通过程序记述各装置应具有的功能的处理内容。然后,通过由计算机执行该程序,在计算机上实现上述处理功能。记述了该处理内容的程序能够记录在计算机可读取的记录介质中。计算机可读取的记录介质的例子是非暂时性的(non-transitory)记录介质。这样的记录介质的例子是磁记录装置、光盘、光磁记录介质、半导体存储器等。
该程序的流通例如通过销售、转让、租借等记录了该程序的DVD、CD-ROM等可移动型记录介质来进行。进而,也可以设为将该程序存储在服务器计算机的存储装置中,通过经由网络将该程序从服务器计算机转发到其它计算机而使该程序流通的结构。
执行这样的程序的计算机例如首先将可移动型记录介质中记录的程序或者从服务器计算机转发的程序暂时存储在自己的存储装置中。在执行处理时,该计算机读取自己的记录装置中存储的程序,执行基于读取的程序的处理。作为该程序的其它执行方式,计算机也可以从可移动型记录介质直接读取程序,执行按照该程序的处理,进而,也可以在每次从服务器计算机对该计算机转发程序时,逐次执行基于接受的程序的处理。也可以设为通过不进行从服务器计算机向该计算机的程序的转发,仅通过该执行指令和结果取得来实现处理功能的、所谓ASP(Application Service Provider,应用服务提供商)型的服务而执行上述的处理的结构。
也可以不是在计算机上执行规定的程序来实现本装置的处理功能,而以硬件方式实现这些处理功能的至少一部分。
标号说明
1、2 运算系统
11 参数设定装置
12、22 运算装置
13-1~13-N 服务器装置。

Claims (11)

1.一种参数设定装置,用于对于文本文件的字符串的运算处理,
所述文本文件包含W个记录,所述记录的每一个包含任意长度的G个单元,所述单元的每一个包含任意个字符,W以及G为1以上的整数,W以及G的至少一方为2以上的整数,所述G个单元与属性信息对应,所述属性信息至少包含用于确定或者估计在各单元所表示的字符串的大小的最大值和最小值的信息,在W为2以上的整数的情况下,在相互相邻的记录之间存在用于确定记录的分隔的信息,在G为2以上的整数的情况下,在相互相邻的单元之间存在用于确定单元间的分隔的信息,
C为高速缓冲存储器大小,M为主存储器大小,
所述参数设定装置包括:
最大大小设定部,将所述属性信息设为输入,设定所述文本文件的相当于1记录的量的字符串的大小的最大值Scsv
最小大小设定部,将所述属性信息设为输入,设定所述相当于1记录的量的字符串的大小的最小值scsv
编码大小设定部,设定将所述相当于1记录的量的字符串编码为规定的有限集合的元而得到的编码信息的合计大小的最大值Senc
运算大小设定部,设定对所述相当于1记录的量的所述编码信息进行特定的运算而得到的运算值的合计大小的最大值Sss,所述特定的运算是秘密分散、秘密计算、加密、或署名生成中的任一个,所述最大值Sss根据所述有限集合、所述特定的运算的内容以及所述属性信息确定;
参考大小设定部,设定表示所述相当于1记录的量的所述单元各自的位置以及长度的参考信息的合计大小Sref
处理单位计算部,所述编码以及所述运算是对所述文本文件的相当于r记录的量的字符串即处理单位字符串的每一个执行的处理,得到C/(Scsv+Senc+Sref)的函数值作为记录数r,所述C/(Scsv+Senc+Sref)的函数值是向上舍入函数值ROUNDUP(C/(Scsv+Senc+Sref))、或向下舍入函数值ROUNDDOWN(C/(Scsv+Senc+Sref))、或四舍五入函数值ROUND(C/(Scsv+Senc+Sref));以及
并行数计算部,I为对所述处理单位字符串的每一个执行的所述编码以及所述运算的反复次数的最大值,在Sref≥Sss时max(Sref,Sss)=Sref,在Sref<Sss时max(Sref,Sss)=Sss,f0为scsv·M/(scsv+Senc+max(Sref,Sss))的函数值,得到f0/I·r·Scsv的函数值作为在所述运算处理中并行被执行的线程数即并行数np,所述f0/I·r·Scsv的函数值是向上舍入函数值ROUNDUP(f0/I·r·Scsv)、或向下舍入函数值ROUNDDOWN(f0/I·r·Scsv)、或四舍五入函数值ROUND(f0/I·r·Scsv)。
2.如权利要求1所述的参数设定装置,还包括:
缓冲区大小计算部,在所述运算处理时,得到f0/np的函数值作为从所述文本文件的字符串被集中读入的数据的文件缓冲区大小f。
3.如权利要求1或2所述的参数设定装置,
所述反复次数的最大值I被决定为,使得前处理的合计处理量相对于用于进行所述处理单位字符串的所述编码以及所述运算的合计处理量的比率为规定值以下。
4.一种运算装置,进行对于文本文件的字符串的运算处理,
所述文本文件包含W个记录,所述记录的每一个包含任意长度的G个单元,所述单元的每一个包含任意个字符,W以及G为1以上的整数,W以及G的至少一方为2以上的整数,在W为2以上的整数的情况下,在相互相邻的记录之间存在用于确定记录的分隔的信息,在G为2以上的整数的情况下,在相互相邻的单元之间存在用于确定单元间的分隔的信息,存在在各单元所表示的字符串的大小的最大值和最小值,f为被决定的文件缓冲区大小,np为并行数,r为表示在1次单位处理中被处理的记录数的正整数,i表示各线程,i∈{0,…,T-1},T为表示与所述文本文件的字符串的大小对应的线程数的正整数,1≦np≦T,在初始状态下线程0的文件读入锁以及缓冲区边界锁以及线程0,…,np-1的并行性锁被解除,
所述运算装置包括主存储器、高速缓冲存储器、多个处理部,
所述多个处理部中进行线程i的处理的处理部包括:
读入部,在所述线程i的文件读入锁以及并行性锁被解除后,从所述文本文件的字符串读入能够存储在所述文件缓冲区大小f的区域中的字符串Si,存储在所述主存储器中;
文件读入锁解除部,在所述字符串Si被存储在所述主存储器后,解除线程i+1的文件读入锁,不解除不存在的线程的文件读入锁;
解析部,在线程i的缓冲区边界锁被解除后,计算表示所述字符串Si中包含的各单元的位置以及长度的参考信息,存储在所述主存储器中;
缓冲区边界锁解除部,在表示所述字符串Si中包含的各单元的位置以及长度的参考信息被计算后,解除线程i+1的缓冲区边界锁,不解除不存在的线程的缓冲区边界锁;
编码部,i=0的情况下的结合字符串CS0为S0,i≥1的情况下的结合字符串CSi为在紧接结合字符串CSi-1之后结合了所述字符串Si的字符串,J为正整数,j=0,…,J-1,利用所述高速缓冲存储器进行如下处理:基于根据所述参考信息确定的信息,选择所述结合字符串CSi中包含的作为处理对象的相当于r记录的量的字符串即处理单位字符串PSi,j,将所述处理单位字符串PSi,j编码为规定的有限集合的元即编码信息Ei,j
运算部,利用所述高速缓冲存储器进行对所述编码信息Ei,j进行特定的运算而得到运算值SSi,j并存储在所述主存储器中的处理;以及
并行性锁解除部,在得到所述运算值SSi,j后解除线程i+np的并行性锁,不解除不存在的线程的并行性锁,
所述特定的运算是秘密分散、秘密计算、加密、或署名生成中的任一个,
所述并行数np为在所述运算处理中并行被执行的线程数,
C为所述高速缓冲存储器的高速缓冲存储器大小,M为所述主存储器的主存储器大小,
Scsv为所述文本文件的相当于1记录的量的字符串的大小的最大值,
scsv为所述相当于1记录的量的字符串的大小的最小值,
Senc为将所述相当于1记录的量的字符串编码为所述有限集合的元而得到的编码信息的合计大小的最大值,
Sss为对所述相当于1记录的量的所述编码信息进行所述运算而得到的运算值的合计大小的最大值,
Sref为表示所述相当于1记录的量的所述单元各自的位置以及长度的参考信息的合计大小,
所述记录数r为C/(Scsv+Senc+Sref)的函数值,所述C/(Scsv+Senc+Sref)的函数值是向上舍入函数值ROUNDUP(C/(Scsv+Senc+Sref))、或向下舍入函数值ROUNDDOWN(C/(Scsv+Senc+Sref))、或四舍五入函数值ROUND(C/(Scsv+Senc+Sref)),
I为对每个所述处理单位字符串PSi,j执行的所述编码以及所述运算的反复次数的最大值,在Sref≥Sss时max(Sref,Sss)=Sref,在Sref<Sss时max(Sref,Sss)=Sss,f0为scsv·M/(scsv+Senc+max(Sref,Sss))的函数值,所述并行数np为f0/I·r·Scsv的函数值,所述f0/I·r·Scsv的函数值是向上舍入函数值ROUNDUP(f0/I·r·Scsv)、或向下舍入函数值ROUNDDOWN(f0/I·r·Scsv)、或四舍五入函数值ROUND(f0/I·r·Scsv),
所述文件缓冲区大小f为f0/np的函数值。
5.一种运算装置,进行对于文本文件的字符串的运算处理,
所述文本文件包含W个记录,所述记录的每一个包含任意长度的G个单元,所述单元的每一个包含任意个字符,W以及G为1以上的整数,W以及G的至少一方为2以上的整数,在W为2以上的整数的情况下,在相互相邻的记录之间存在用于确定记录的分隔的信息,在G为2以上的整数的情况下,在相互相邻的单元之间存在用于确定单元间的分隔的信息,存在在各单元所表示的字符串的大小的最大值和最小值,f为被决定的文件缓冲区大小,np为并行数,r为表示在1次单位处理中被处理的记录数的正整数,i表示各线程,i∈{0,…,T-1},T为表示与所述文本文件的字符串的大小对应的线程数的正整数,1≦np≦T,在初始状态下线程0的文件读入锁以及线程0,…,np-1的并行性锁被解除,
所述运算装置包括主存储器、高速缓冲存储器、多个处理部,
所述多个处理部中进行线程i的处理的处理部包括:
读入部,在所述线程i的文件读入锁以及并行性锁被解除后,从所述文本文件的字符串读入能够存储在所述文件缓冲区大小f的区域中的字符串Si,存储在所述主存储器中;
文件读入锁解除部,在所述字符串Si被存储在所述主存储器中后解除线程i+1的文件读入锁,不解除不存在的线程的文件读入锁;
解析部,计算表示所述字符串Si中包含的各单元的位置以及长度的参考信息,存储在所述主存储器中;
单元确定部,在i≥1的情况下,所述字符串Si为在紧接字符串Si-1之后接续的字符串,在线程i的缓冲区边界锁被解除后,使用所述参考信息、所述字符串Si-1、所述字符串Si,得到与紧接所述字符串Si-1中包含的最后的单元之后接续的单元的位置对应的信息Ai
缓冲区边界锁解除部,在得到所述信息Ai后解除线程i+1的缓冲区边界锁,不解除不存在的线程的缓冲区边界锁;
编码部,i=0的情况下的结合字符串CS0为S0,i≥1的情况下的结合字符串CSi为在紧接结合字符串CSi-1之后结合了所述字符串Si的字符串,J为正整数,j=0,…,J-1,利用所述高速缓冲存储器进行如下处理:基于所述参考信息以及根据所述信息Ai确定的信息,选择所述结合字符串CSi中包含的作为处理对象的相当于r记录的量的字符串即处理单位字符串PSi,j,将所述处理单位字符串PSi,j编码为规定的有限集合的元即编码信息Ei,j
运算部,利用所述高速缓冲存储器进行对所述编码信息Ei,j进行特定的运算而得到运算值SSi,j并存储在所述主存储器中的处理;以及
并行性锁解除部,在得到所述运算值SSi,j后解除线程i+np的并行性锁,不解除不存在的线程的并行性锁,
所述特定的运算是秘密分散、秘密计算、加密、或署名生成中的任一个,
所述并行数np为在所述运算处理中并行被执行的线程数,
C为所述高速缓冲存储器的高速缓冲存储器大小,M为所述主存储器的主存储器大小,
Scsv为所述文本文件的相当于1记录的量的字符串的大小的最大值,
scsv为所述相当于1记录的量的字符串的大小的最小值,
Senc为将所述相当于1记录的量的字符串编码为所述有限集合的元而得到的编码信息的合计大小的最大值,
Sss为对所述相当于1记录的量的所述编码信息进行所述运算而得到的运算值的合计大小的最大值,
Sref为表示所述相当于1记录的量的所述单元各自的位置以及长度的参考信息的合计大小,
所述记录数r为C/(Scsv+Senc+Sref)的函数值,所述C/(Scsv+Senc+Sref)的函数值是向上舍入函数值ROUNDUP(C/(Scsv+Senc+Sref))、或向下舍入函数值ROUNDDOWN(C/(Scsv+Senc+Sref))、或四舍五入函数值ROUND(C/(Scsv+Senc+Sref)),
I为对每个所述处理单位字符串PSi,j执行的所述编码以及所述运算的反复次数的最大值,在Sref≥Sss时max(Sref,Sss)=Sref,在Sref<Sss时max(Sref,Sss)=Sss,f0为scsv·M/(scsv+Senc+max(Sref,Sss))的函数值,所述并行数np为f0/I·r·Scsv的函数值,所述f0/I·r·Scsv的函数值是向上舍入函数值ROUNDUP(f0/I·r·Scsv)、或向下舍入函数值ROUNDDOWN(f0/I·r·Scsv)、或四舍五入函数值ROUND(f0/I·r·Scsv),
所述文件缓冲区大小f为f0/np的函数值。
6.如权利要求5所述的运算装置,
所述单元仅包含能够单独判别是否表示所述运算的对象的字符,
在i≥1的情况下,所述解析部在表示所述字符串Si-1中包含的各单元的位置以及长度的参考信息的计算结束之前开始计算表示所述字符串Si中包含的各单元的位置以及长度的参考信息。
7.如权利要求4至6的任意一项所述的运算装置,
在所述主存储器中存储所述参考信息的区域变得不足时,所述解析部在所述主存储器中集中确保用于存储所述相当于r记录的量的所述参考信息的缓冲区区域。
8.一种参数设定方法,用于对于文本文件的字符串的运算处理,
所述文本文件包含W个记录,所述记录的每一个包含任意长度的G个单元,所述单元的每一个包含任意个字符,W以及G为1以上的整数,W以及G的至少一方为2以上的整数,所述G个单元与属性信息对应,所述属性信息至少包含用于确定或者估计在各单元所表示的字符串的大小的最大值和最小值的信息,在W为2以上的整数的情况下,在相互相邻的记录之间存在用于确定记录的分隔的信息,在G为2以上的整数的情况下,在相互相邻的单元之间存在用于确定单元间的分隔的信息,
C为高速缓冲存储器大小,M为主存储器大小,
所述参数设定方法包括:
最大大小设定步骤,将所述属性信息设为输入,设定所述文本文件的相当于1记录的量的字符串的大小的最大值Scsv
最小大小设定步骤,将所述属性信息设为输入,设定所述相当于1记录的量的字符串的大小的最小值scsv
编码大小设定步骤,设定将所述相当于1记录的量的字符串编码为规定的有限集合的元而得到的编码信息的合计大小的最大值Senc
运算大小设定步骤,设定对所述相当于1记录的量的所述编码信息进行特定的运算而得到的运算值的合计大小的最大值Sss,所述特定的运算是秘密分散、秘密计算、加密、或署名生成中的任一个,所述最大值Sss根据所述有限集合、所述特定的运算的内容以及所述属性信息确定;
参考大小设定步骤,设定表示所述相当于1记录的量的所述单元各自的位置以及长度的参考信息的合计大小Sref
处理单位计算步骤,所述编码以及所述运算是对所述文本文件的相当于r记录的量的字符串即处理单位字符串的每一个执行的处理,得到C/(Scsv+Senc+Sref)的函数值作为记录数r,所述C/(Scsv+Senc+Sref)的函数值是向上舍入函数值ROUNDUP(C/(Scsv+Senc+Sref))、或向下舍入函数值ROUNDDOWN(C/(Scsv+Senc+Sref))、或四舍五入函数值ROUND(C/(Scsv+Senc+Sref));以及
并行数计算步骤,I为对所述处理单位字符串的每一个执行的所述编码以及所述运算的反复次数的最大值,在Sref≥Sss时max(Sref,Sss)=Sref,在Sref<Sss时max(Sref,Sss)=Sss,f0为scsv·M/(scsv+Senc+max(Sref,Sss))的函数值,得到f0/I·r·Scsv的函数值作为在所述运算处理中并行被执行的线程数即并行数np,所述f0/I·r·Scsv的函数值是向上舍入函数值ROUNDUP(f0/I·r·Scsv)、或向下舍入函数值ROUNDDOWN(f0/I·r·Scsv)、或四舍五入函数值ROUND(f0/I·r·Scsv)。
9.一种运算方法,是由进行对于文本文件的字符串的运算处理的运算装置进行的运算方法,
所述文本文件包含W个记录,所述记录的每一个包含任意长度的G个单元,所述单元的每一个包含任意个字符,W以及G为1以上的整数,W以及G的至少一方为2以上的整数,在W为2以上的整数的情况下,在相互相邻的记录之间存在用于确定记录的分隔的信息,在G为2以上的整数的情况下,在相互相邻的单元之间存在用于确定单元间的分隔的信息,存在在各单元所表示的字符串的大小的最大值和最小值,f为被决定的文件缓冲区大小,np为并行数,r为表示在1次单位处理中被处理的记录数的正整数,i表示各线程,i∈{0,…,T-1},T为表示与所述文本文件的字符串的大小对应的线程数的正整数,1≦np≦T,在初始状态下线程0的文件读入锁以及缓冲区边界锁以及线程0,…,np-1的并行性锁被解除,
所述运算装置包括主存储器、高速缓冲存储器、多个处理部,
所述多个处理部中进行线程i的处理的处理部执行:
读入步骤,在所述线程i的文件读入锁以及并行性锁被解除后,从所述文本文件的字符串读入能够存储在所述文件缓冲区大小f的区域中的字符串Si,存储在所述主存储器中;
文件读入锁解除步骤,在所述字符串Si被存储在所述主存储器后,解除线程i+1的文件读入锁,不解除不存在的线程的文件读入锁;
解析步骤,在线程i的缓冲区边界锁被解除后,计算表示所述字符串Si中包含的各单元的位置以及长度的参考信息,存储在所述主存储器中;
缓冲区边界锁解除步骤,在表示所述字符串Si中包含的各单元的位置以及长度的参考信息被计算后,解除线程i+1的缓冲区边界锁,不解除不存在的线程的缓冲区边界锁;
编码步骤,i=0的情况下的结合字符串CS0为S0,i≥1的情况下的结合字符串CSi为在紧接结合字符串CSi-1之后结合了所述字符串Si的字符串,J为正整数,j=0,…,J-1,利用所述高速缓冲存储器进行如下处理:基于根据所述参考信息确定的信息,选择所述结合字符串CSi中包含的作为处理对象的相当于r记录的量的字符串即处理单位字符串PSi,j,将所述处理单位字符串PSi,j编码为规定的有限集合的元即编码信息Ei,j
运算步骤,利用所述高速缓冲存储器进行对所述编码信息Ei,j进行特定的运算而得到运算值SSi,j并存储在所述主存储器中的处理;以及
并行性锁解除步骤,在得到所述运算值SSi,j后解除线程i+np的并行性锁,不解除不存在的线程的并行性锁,
所述特定的运算是秘密分散、秘密计算、加密、或署名生成中的任一个,
所述并行数np为在所述运算处理中并行被执行的线程数,
C为所述高速缓冲存储器的高速缓冲存储器大小,M为所述主存储器的主存储器大小,
Scsv为所述文本文件的相当于1记录的量的字符串的大小的最大值,
scsv为所述相当于1记录的量的字符串的大小的最小值,
Senc为将所述相当于1记录的量的字符串编码为所述有限集合的元而得到的编码信息的合计大小的最大值,
Sss为对所述相当于1记录的量的所述编码信息进行所述运算而得到的运算值的合计大小的最大值,
Sref为表示所述相当于1记录的量的所述单元各自的位置以及长度的参考信息的合计大小,
所述记录数r为C/(Scsv+Senc+Sref)的函数值,所述C/(Scsv+Senc+Sref)的函数值是向上舍入函数值ROUNDUP(C/(Scsv+Senc+Sref))、或向下舍入函数值ROUNDDOWN(C/(Scsv+Senc+Sref))、或四舍五入函数值ROUND(C/(Scsv+Senc+Sref)),
I为对每个所述处理单位字符串PSi,j执行的所述编码以及所述运算的反复次数的最大值,在Sref≥Sss时max(Sref,Sss)=Sref,在Sref<Sss时max(Sref,Sss)=Sss,f0为scsv·M/(scsv+Senc+max(Sref,Sss))的函数值,所述并行数np为f0/I·r·Scsv的函数值,所述f0/I·r·Scsv的函数值是向上舍入函数值ROUNDUP(f0/I·r·Scsv)、或向下舍入函数值ROUNDDOWN(f0/I·r·Scsv)、或四舍五入函数值ROUND(f0/I·r·Scsv),
所述文件缓冲区大小f为f0/np的函数值。
10.一种运算方法,是由进行对于文本文件的字符串的运算处理的运算装置进行的运算方法,
所述文本文件包含W个记录,所述记录的每一个包含任意长度的G个单元,所述单元的每一个包含任意个字符,W以及G为1以上的整数,W以及G的至少一方为2以上的整数,在W为2以上的整数的情况下,在相互相邻的记录之间存在用于确定记录的分隔的信息,在G为2以上的整数的情况下,在相互相邻的单元之间存在用于确定单元间的分隔的信息,存在在各单元所表示的字符串的大小的最大值和最小值,f为被决定的文件缓冲区大小,np为并行数,r为表示在1次单位处理中被处理的记录数的正整数,i表示各线程,i∈{0,…,T-1},T为表示与所述文本文件的字符串的大小对应的线程数的正整数,1≦np≦T,在初始状态下线程0的文件读入锁以及线程0,…,np-1的并行性锁被解除,
所述运算装置包括主存储器、高速缓冲存储器、多个处理部,
所述多个处理部中进行线程i的处理的处理部执行:
读入步骤,在所述线程i的文件读入锁以及并行性锁被解除后,从所述文本文件的字符串读入能够存储在所述文件缓冲区大小f的区域中的字符串Si,存储在所述主存储器中;
文件读入锁解除步骤,在所述字符串Si被存储在所述主存储器中后解除线程i+1的文件读入锁,不解除不存在的线程的文件读入锁;
解析步骤,计算表示所述字符串Si中包含的各单元的位置以及长度的参考信息,存储在所述主存储器中;
单元确定步骤,在i≥1的情况下,所述字符串Si为在紧接字符串Si-1之后接续的字符串,在线程i的缓冲区边界锁被解除后,使用所述参考信息、所述字符串Si-1、所述字符串Si,得到与紧接所述字符串Si-1中包含的最后的单元之后接续的单元的位置对应的信息Ai
缓冲区边界锁解除步骤,在得到所述信息Ai后解除线程i+1的缓冲区边界锁,不解除不存在的线程的缓冲区边界锁;
编码步骤,i=0的情况下的结合字符串CS0为S0,i≥1的情况下的结合字符串CSi为在紧接结合字符串CSi-1之后结合了所述字符串Si的字符串,J为正整数,j=0,…,J-1,利用所述高速缓冲存储器进行如下处理:基于所述参考信息以及根据所述信息Ai确定的信息,选择所述结合字符串CSi中包含的作为处理对象的相当于r记录的量的字符串即处理单位字符串PSi,j,将所述处理单位字符串PSi,j编码为规定的有限集合的元即编码信息Ei,j
运算步骤,利用所述高速缓冲存储器进行对所述编码信息Ei,j进行特定的运算而得到运算值SSi,j并存储在所述主存储器中的处理;以及
并行性锁解除步骤,在得到所述运算值SSi,j后解除线程i+np的并行性锁,不解除不存在的线程的并行性锁,
所述特定的运算是秘密分散、秘密计算、加密、或署名生成中的任一个,
所述并行数np为在所述运算处理中并行被执行的线程数,
C为所述高速缓冲存储器的高速缓冲存储器大小,M为所述主存储器的主存储器大小,
Scsv为所述文本文件的相当于1记录的量的字符串的大小的最大值,
scsv为所述相当于1记录的量的字符串的大小的最小值,
Senc为将所述相当于1记录的量的字符串编码为所述有限集合的元而得到的编码信息的合计大小的最大值,
Sss为对所述相当于1记录的量的所述编码信息进行所述运算而得到的运算值的合计大小的最大值,
Sref为表示所述相当于1记录的量的所述单元各自的位置以及长度的参考信息的合计大小,
所述记录数r为C/(Scsv+Senc+Sref)的函数值,所述C/(Scsv+Senc+Sref)的函数值是向上舍入函数值ROUNDUP(C/(Scsv+Senc+Sref))、或向下舍入函数值ROUNDDOWN(C/(Scsv+Senc+Sref))、或四舍五入函数值ROUND(C/(Scsv+Senc+Sref)),
I为对每个所述处理单位字符串PSi,j执行的所述编码以及所述运算的反复次数的最大值,在Sref≥Sss时max(Sref,Sss)=Sref,在Sref<Sss时max(Sref,Sss)=Sss,f0为scsv·M/(scsv+Senc+max(Sref,Sss))的函数值,所述并行数np为f0/I·r·Scsv的函数值,所述f0/I·r·Scsv的函数值是向上舍入函数值ROUNDUP(f0/I·r·Scsv)、或向下舍入函数值ROUNDDOWN(f0/I·r·Scsv)、或四舍五入函数值ROUND(f0/I·r·Scsv),
所述文件缓冲区大小f为f0/np的函数值。
11.一种计算机可读取的记录介质,存储了用于使计算机具有作为权利要求1至7的任意一项的装置的功能的程序。
CN201980019927.0A 2018-03-19 2019-03-11 参数设定装置、运算装置、它们的方法、以及记录介质 Active CN111868805B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018-051009 2018-03-19
JP2018051009 2018-03-19
PCT/JP2019/009597 WO2019181594A1 (ja) 2018-03-19 2019-03-11 パラメータ設定装置、演算装置、それらの方法、プログラム、および記録媒体

Publications (2)

Publication Number Publication Date
CN111868805A CN111868805A (zh) 2020-10-30
CN111868805B true CN111868805B (zh) 2023-08-29

Family

ID=67986173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980019927.0A Active CN111868805B (zh) 2018-03-19 2019-03-11 参数设定装置、运算装置、它们的方法、以及记录介质

Country Status (6)

Country Link
US (1) US11907641B2 (zh)
EP (1) EP3770889B1 (zh)
JP (1) JP7010365B2 (zh)
CN (1) CN111868805B (zh)
AU (1) AU2019238219B2 (zh)
WO (1) WO2019181594A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4044156A4 (en) * 2019-10-10 2023-06-21 Nippon Telegraph And Telephone Corporation DEVICE, METHOD AND PROGRAM FOR MULTI-ITERATIVE SECRET CALCULATION
JP7464555B2 (ja) 2021-03-12 2024-04-09 Kddi株式会社 データ提供装置、集計システム及びデータ提供プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008023881A1 (en) * 2006-08-25 2008-02-28 Samsung Electronics Co., Ltd. Method and apparatus for encrypting data
CN101271472A (zh) * 2003-09-15 2008-09-24 Ab开元软件公司 数据处理方法、软件和数据处理系统
JP2013101324A (ja) * 2011-10-11 2013-05-23 Nippon Telegr & Teleph Corp <Ntt> データベース撹乱パラメータ設定装置、方法及びプログラム並びにデータベース撹乱システム
WO2017017738A1 (ja) * 2015-07-24 2017-02-02 富士通株式会社 符号化プログラム、符号化装置、及び符号化方法
JP2017059132A (ja) * 2015-09-18 2017-03-23 株式会社デンソーウェーブ 端末装置及び端末装置のためのコンピュータプログラム
CN106796764A (zh) * 2014-10-08 2017-05-31 日本电信电话株式会社 部分字符串位置检测装置、部分字符串位置检测方法及程序

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001076014A (ja) * 1999-09-03 2001-03-23 Kyowa Exeo Corp Cadデータファイル変換方法およびcadデータファイル変換プログラムを記録したコンピュータ読み取り可能な記録媒体
US20040199537A1 (en) * 2003-04-03 2004-10-07 Duff Robert Cory System for storing and retrieving database information
BRPI0517026A (pt) * 2004-10-25 2008-09-30 Rick L Orsini método e sistema analisador de dados seguros
US10515141B2 (en) * 2012-07-18 2019-12-24 Software Ag Usa, Inc. Systems and/or methods for delayed encoding of XML information sets
KR101553986B1 (ko) * 2012-10-30 2015-09-18 동국대학교 산학협력단 분산 데이터 저장, 복원 시스템 및 방법
CN104615585B (zh) * 2014-01-06 2017-07-21 腾讯科技(深圳)有限公司 处理文本信息的方法及装置
US9959069B2 (en) * 2015-02-12 2018-05-01 Microsoft Technology Licensing, Llc Externalized execution of input method editor
US10928992B2 (en) * 2019-03-11 2021-02-23 International Business Machines Corporation HTML editing operations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101271472A (zh) * 2003-09-15 2008-09-24 Ab开元软件公司 数据处理方法、软件和数据处理系统
WO2008023881A1 (en) * 2006-08-25 2008-02-28 Samsung Electronics Co., Ltd. Method and apparatus for encrypting data
JP2013101324A (ja) * 2011-10-11 2013-05-23 Nippon Telegr & Teleph Corp <Ntt> データベース撹乱パラメータ設定装置、方法及びプログラム並びにデータベース撹乱システム
CN106796764A (zh) * 2014-10-08 2017-05-31 日本电信电话株式会社 部分字符串位置检测装置、部分字符串位置检测方法及程序
WO2017017738A1 (ja) * 2015-07-24 2017-02-02 富士通株式会社 符号化プログラム、符号化装置、及び符号化方法
JP2017059132A (ja) * 2015-09-18 2017-03-23 株式会社デンソーウェーブ 端末装置及び端末装置のためのコンピュータプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Instant loading for main memory databases";TOBIAS MUHLBAUER ET AL;《PROCEEDINGS OF THE VLDB ENDOWMENT》;1702-1713 *

Also Published As

Publication number Publication date
EP3770889A1 (en) 2021-01-27
AU2019238219B2 (en) 2021-06-24
WO2019181594A1 (ja) 2019-09-26
AU2019238219A1 (en) 2020-10-01
EP3770889B1 (en) 2023-08-23
JPWO2019181594A1 (ja) 2021-03-11
EP3770889A4 (en) 2021-12-15
US20210027009A1 (en) 2021-01-28
CN111868805A (zh) 2020-10-30
JP7010365B2 (ja) 2022-01-26
US11907641B2 (en) 2024-02-20

Similar Documents

Publication Publication Date Title
CN110348231B (zh) 实现隐私保护的数据同态加解密方法及装置
JP5826934B2 (ja) 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム
US11403284B2 (en) System for data sharing platform based on distributed data sharing environment based on block chain, method of searching for data in the system, and method of providing search index in the system
US10153894B2 (en) Homomorphic encryption with optimized encoding
US20170134156A1 (en) Homomorphic Encryption with Optimized Parameter Selection
JP5957126B1 (ja) 秘密計算装置、秘密計算方法、およびプログラム
JP2017515195A (ja) 断熱量子計算を介してデジタル論理制約問題を解く
CN111868805B (zh) 参数设定装置、运算装置、它们的方法、以及记录介质
US9762384B2 (en) Generation and verification of alternate data having specific format
JP6973633B2 (ja) 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム
KR101496764B1 (ko) 일정 수 이상의 파일 조각으로 복구 가능한 파일 분산 관리 장치 및 방법
JP2016157055A (ja) 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法
JP6273224B2 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法
CN111052205A (zh) 份额生成装置、复原装置、秘密计算系统、份额生成方法、复原方法、程序、以及记录介质
KR101688636B1 (ko) 고속 메시지 해싱을 위한 압축함수를 제공하는 연산 방법 및 그 장치
JP2014137740A (ja) 計算装置、計算システム、計算方法
JP2019121256A (ja) 学習システム及び学習方法
EP4350562A1 (en) Secure computation system, device, method, and program
JP2019040047A (ja) 計算システム、計算方法及び計算プログラム
US10355855B2 (en) Communication control device, communication device, and computer program product
EP4350561A1 (en) Secure computing system, device, method, and program
KR20230130382A (ko) 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치, 방법 및 그 방법을 이용한 전자서명 및 암호화 연산 방법
KR20140046860A (ko) 해쉬 기반의 콘텐츠 파일의 식별자 생성 장치 및 방법, 및 해쉬 코드 생성 방법
JP2023184198A (ja) 連合学習システム及び連合学習方法
KR20160141962A (ko) 모듈로 연산을 적용한 형식 보존 암호화 방법 및 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant