CN101739290A - 用于保障多线程服务器应用的系统 - Google Patents

用于保障多线程服务器应用的系统 Download PDF

Info

Publication number
CN101739290A
CN101739290A CN200910221859A CN200910221859A CN101739290A CN 101739290 A CN101739290 A CN 101739290A CN 200910221859 A CN200910221859 A CN 200910221859A CN 200910221859 A CN200910221859 A CN 200910221859A CN 101739290 A CN101739290 A CN 101739290A
Authority
CN
China
Prior art keywords
message
component
processing
gpu
processing messages
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.)
Granted
Application number
CN200910221859A
Other languages
English (en)
Other versions
CN101739290B (zh
Inventor
M·格里查尼克
谢晴
傅忱
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.)
Accenture Global Services Ltd
Accenture International LLC
Original Assignee
Accenture Global Services GmbH
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 Accenture Global Services GmbH filed Critical Accenture Global Services GmbH
Publication of CN101739290A publication Critical patent/CN101739290A/zh
Application granted granted Critical
Publication of CN101739290B publication Critical patent/CN101739290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种用于保障多线程服务器应用的系统,其解决了改进应用性能的需求。该系统实现了转卸、批处理和调度机制,以便更为有效地执行多线程应用。该系统显著降低了中央处理单元与图形处理单元进行协作的关联开销,其例如可以处理用于在中央处理单元上执行的线程的密码处理。

Description

用于保障多线程服务器应用的系统
优先权要求
本申请要求于2008年11月19日提交的、代理卷号为10022/1389的美国申请No.12/274,130的优先权,在此通过引用而并入其全部内容。
技术领域
本公开涉及将计算从系统中央处理单元(CPU)有效地转卸(offload)到系统图形处理单元(GPU)的数据处理系统。
背景技术
性能在创建大规模应用中是关键的挑战,因为预测这种应用的行为本身是很困难的。将安全解决方案纳入这些应用架构的结构几乎总会使结果系统的性能更差。当保护所有应用数据时性能下降可能大于90%,并且当应用其它安全机制时可能更差。
为了有效,密码算法有必要是计算密集型的,并且必需是数据保护协议的完整部分。使用密码算法的代价是明显的,因为它们的执行消耗许多CPU周期,这会对应用的性能产生不利影响。例如,安全套接字层(SSL)协议中的密码操作将从服务器下载文件的速度降低了大约10到100倍。SSL操作还将惩罚任何地方web服务器的性能,其因数大约从3.4到最多因数9。大体上,只要数据消息跨过安全边界,该消息便会被加密并且随后被解密。这些操作带来了性能处罚。
减轻使用密码协议代价的一个现有技术的尝试包括添加分离的专门化硬件以提供安全支持。额外的专用硬件允许应用使用更多的CPU周期。然而,专用硬件是昂贵的并且使用它要求对现有系统进行较大改动。另外,将外部硬件设备用于密码功能增加了编组与解组开销(由封装与解封装数据引起的)以及设备延迟。
减轻使用密码协议代价的另一现有技术尝试是增加CPU以处理加密操作。然而,附加的CPU最好是用于应用的核心计算逻辑,以改进其响应时间和可用性。另外,多数计算机对其主板上可安装的CPU的数量具有限制。而且,CPU趋向于变为昂贵资源,其是针对通用计算而设计的,而非针对用于密码计算的特定应用。这可能导致CPU的利用不足以及不利的成本收益结果。
因此,需求解决上文描述以及其他之前经历的问题。
发明内容
一种用于保障多线程服务器应用的系统,改进了用于执行核心应用的CPU的可用性。系统提供转卸、批处理和调度机制,用于在GPU上有效地执行应用所需的处理任务,从而改进多线程服务器应用的性能。由此,系统有助于降低CPU与GPU之间的协作处理的关联开销,从而使CPU可以花费更多的周期用于执行应用逻辑。
通过研究下文的附图和详细描述,其它系统、方法、特征和优势对于本领域技术人员而言将是或将变为易见的。意在将所有这种附加的系统、方法、特征和优势都包括在此描述中,包括在本发明的范围中,并且由所付权利要求加以保护。
附图说明
参考以下的附图和描述可以更好理解系统。图中的分量未必是按比例绘制的,其重点在于说明本发明的原理。此外,贯穿不同视图,附图中相似的参考标号指代相应的部分。
图1示出了多线程应用执行环境中加密和解密操作的管理控制系统,其中消息被批处理以便提交到GPU;
图2示出了多线程应用执行环境中加密和解密操作的管理控制系统,其中来自接收自GPU的已处理消息的已处理消息分量被递交给应用的线程;
图3示出了可由加密管理逻辑实现以对消息进行批处理从而提交到GPU的处理的流程图;
图4示出了可由加密管理逻辑实现用以将由GPU处理的消息返回到应用线程的处理的流程图;
图5示出了可由加密管理调整逻辑实现的处理的流程图;
图6示出了由系统中加密管理逻辑实现的批处理机制的实验结果;以及
图7示出了平均等待时间相对于最大复合消息容量的仿真结果的实例。
具体实施方式
图1示出了多线程应用执行环境中加密和解密操作的管理控制的系统100。系统100包括中央处理单元(CPU)102、存储器104和图形处理单元(GPU)106。GPU 106可以是例如可从Santa Clara的NVIDIA、CA或Marlborough的ATI研究公司、MA获得的图形处理单元。GPU 106可以通过总线108与CPU 102和存储器104通信,如外部设备互连(PCI)总线、PCI Express总线、图形加速端口(AGP)总线、工业标准结构(ISA)总线或其它总线。正如下面将更详细描述,CPU 102执行来自系统存储器104的应用。应用可以是多线程应用。
CPU 102和GPU 106之间的一个区别是:CPU 102通常遵循单指令单数据(SISD)模型,而GPU 106通常遵循单指令多数据(SIMD)流模型。根据SISD模型,CPU 102每次对执行指令之前加载到存储器中的单个(或最多几个)数据元素每次执行一个(或最多几个)指令。相反,SIMD处理单元包括多个处理单元(例如,16到32个像素着色器),其同时对多数据流执行来自单个指令流的指令,每个处理单元一个数据流。换句话说,GPU 106相对于CPU 102的一个区别特征是:GPU 106实现比CPU更高的并行处理水平。GPU 106还包括专门化存储器部分,如纹理存储器、帧缓冲区和用于图形操作处理的只写纹理存储器。
存储器保存由CPU 102执行的应用,如结算应用110和结余应用112。每个应用可以加载多个执行线程。如图1中所示,结算应用已经加载了线程1到‘n’,标示为114到116。每个线程可以处理结算应用110的任何期望的程序逻辑片段。
每个线程(如线程114)与线程标识符(ID)118相关联。线程ID可以在线程加载时由操作系统指派,或者由系统100上存在的其他管理机制指派,或者通过其他方式指派。线程ID可以唯一地指定线程,从而使该线程可以区别于系统100中执行的其它线程。
线程执行针对其而被设计的处理。处理可以包括应用编程接口(API)调用120以支持处理。例如,API调用120可以对该线程传递给API调用的消息实现加密服务(例如,加密或解密)。然而,虽然下文将关于加密服务来进行讨论,但是API调用可以要求任何其它处理逻辑(例如,认证或授权、压缩、转码或其它逻辑)并且不限于加密服务。同样地,管理逻辑154可以一般地可以为任何期望的处理执行转卸、调度和批处理,而不限于加密服务。
GPU 106包括只读纹理存储器136、多个并行像素着色器138和帧缓冲区140。纹理存储器136存储复合消息142,下面更详细描述。多个并行像素着色器138响应来自CPU 102的执行调用(例如,GPU绘图调用)而处理复合消息142。多个并行像素着色器138执行加密算法144,其可以提供应用于复合消息142的加密或解密功能,如下更详细解释。GPU 106还包括只写纹理存储器146。GPU 106可以将处理结果写入只写纹理存储器146以供CPU 102获取。CPU 102将GPU 106获得的结果返回给导致复合消息142分量的个体线程。不同于纹理存储器136和只写纹理存储器146或者除此以外,可以采用其它数据交换机制与GPU交换数据。
像素着色器138的编程功能可以遵循API调用120的预期。像素着色器138可以高度并行该功能。然而,如上所述,像素着色器138不限于实现加密服务。
当每个线程进行API调用120时,其可以提供期望API调用对其进行操作的源消息分量。图1示出了由线程114提供的源消息分量148和由线程‘n’116提供的源消息分量‘n’,其‘n’是整数。例如,源消息分量可以是客户结算数据,去在发送到其他系统之前应当加密。然后,系统100可以与深度防护策略结合使用,通过该深度防护策略,消息例如在程序和/或系统之间的每个通信边界处被加密和解密。
系统100截获API调用120,以提供由应用的潜在的多个执行线程所进行的潜在的多个API调用的更为有效的处理。为此,系统100可以在存储器中实现API调用包装器(wrapper)152。API调用包装器152接收API调用,并且利用加密管理逻辑154来替换普通API调用逻辑。换句话说,不同于API调用120导致对API调用逻辑的常规调用,而是将系统100配置用于通过API调用包装器152来截获API调用120,并且替代不同的功能。
继续关于加密服务的示例,API调用包装器152将普通API调用逻辑替换为加密管理逻辑154。存储器104还可以存储支配加密管理逻辑154操作的加密管理参数156。而且,如下所论述的,系统100还可以执行加密管理调整逻辑158来校准或优化加密管理参数156。
为了支持对线程提供的源消息分量的加密和解密,加密管理逻辑154可以将请求批处理到复合消息142中。由此,例如,加密管理逻辑154可以维护从请求加密的线程收集源消息分量的复合消息以及从请求解密的线程收集源消息分量的复合消息。分离的加密管理参数可以操控源消息分量到任何数量的复合消息中的批处理。在接收每个源消息分量之后,加密管理逻辑154可以按照加密管理逻辑154所指定的线程ID来调用使线程休眠的操作系统功能,从而将每个线程置于休眠。休眠每个线程的一个好处在于:其它活跃线程可以使用空闲的CPU周期,因为CPU不再执行进入休眠的线程。因而,CPU保持忙碌执行应用逻辑。
图1所示的示例中,复合消息142保存来自请求对特定消息进行加密的线程的源消息分量。更具体地,加密管理逻辑154从线程114、116获得源消息分量148、150,并且基于每个源消息分量148、150来创建复合消息部分。在一个实现中,加密管理逻辑154将复合消息部分作为三个字段帧来创建,包括线程ID、源消息分量的消息长度(或包括源消息分量的复合消息部分)和源消息分量。加密管理逻辑154继而将每个复合消息部分添加到复合消息142中,从而将每个复合消息部分批处理到复合消息142(在下文指出的限制内)。
图1示出,复合消息142包括标示为162、164、166的‘n’个复合消息部分。每个复合消息部分包括线程ID、消息长度和源消息分量。例如,复合消息部分162包括线程ID 168(其可以对应于线程ID 118)、消息长度170和源消息分量172(其可以对应于源消息分量148)。
CPU 102将复合消息142提交到GPU 106进行处理。在这一点上,CPU 102可以将复合消息142写入纹理存储器136。CPU 102例如还可以通过向GPU 106发出绘制调用来开始GPU 106对复合消息的处理。
由系统100实现的批处理机制可以显著地改进处理性能。一个原因是系统100减少了将多个小消息发送到GPU 106并从GPU 106获取多个小的已处理结果的数据传送开销。系统100将复合消息分量批处理到大复合消息142中并且从只写纹理146读回较大的已处理消息,由此来帮助改进效率。得到了与GPU 106更为有效的双向数据传送。改进的另一个原因是对GPU 106进行较少的绘制调用。绘制调用时间和资源开销因此显著减少。
转到图6,其示出了由加密管理逻辑154实现的批处理机制的实验结果600。实验结果600显示当复合消息大小增加时每字节处理的代价显著减少。表1提供了实验数据点。例如,以2为对数底的消息大小16以2为对数底的消息大小10在效率上获得了57倍的增加。
Figure G2009102218594D0000071
图2突出显示加密管理逻辑154如何处理从GPU 106返回的已处理消息202。一个实现中,GPU 106完成复合消息142上的所请求处理,并且将得到的已处理消息202写入只写纹理存储器146中。GPU106向CPU 102通知在复合消息142上完成了处理。作为响应,CPU102从只写纹理存储器146中读取已处理消息202。
如图2所示,已处理消息202包括标示为204、206和208的多个已处理消息部分。通常,已处理消息部分是通过处理复合消息142中的复合消息部分而得到的。然而,在复合消息142中发送以进行处理的内容与GPU 106在已处理消息202中返回的内容之间无需一一对应。
已处理消息部分可以包括多个字段。例如,已处理消息部分204包括线程ID 208、消息长度210和已处理消息分量212。消息长度210可以表示已处理消息分量(或包括处理消息分量的已处理消息部分)的长度。线程ID 208可以指明已处理消息分量应当递交到哪个线程。
加密管理逻辑154将已处理消息202分解成包括已处理消息分量的已处理消息部分204、206、208。根据哪些线程发起了引致已处理消息分量的源消息分量,加密管理逻辑154还有选择地将已处理消息分量传送给应用的多个执行线程中的选定线程。换句话说,提交消息进行加密的线程接收经过加密的消息。GPU 106产生经过加密消息,而CPU 102根据经过加密的已处理消息分量随附的已处理消息部分中指定的线程ID,将经过加密消息返回给线程。通常,已处理消息部分中指定的线程ID 208记录了引致已处理消息部分的复合消息部分中指定的线程ID 168。
在图2所示的示例中,加密管理逻辑154将已处理消息分量212返回到结算应用110的线程1。加密管理逻辑154还返回其它已处理消息分量,包括将来自已处理消息部分‘n’208的已处理消息分量214返回给线程‘n’116。在返回每个已处理消息分量之前,加密管理逻辑154可以通过调用通过线程ID唤醒线程的操作系统功能来唤醒每个线程。
图3示出了可由加密管理逻辑154实现用以将复合消息142提交到GPU 106的处理的流程图。加密管理逻辑154读取加密管理参数156,包括批处理参数(302)。批处理参数可以包括复合消息142的最大或最小长度,以及在发送复合消息142之前等待新源消息分量的最长或最短等待时间(例如,批处理定时器)。批处理参数还可以包括复合消息142中允许的复合消息部分的最大或最小数量,从其接受源消息分量的不同线程的最大或最小数量,或影响上述处理的其它参数。
加密管理逻辑154基于新源消息分量(304)的最大等待时间(如果有)来启动批处理定时器。当源消息分量到达时,加密管理逻辑154休眠提交该源消息分量的线程(306)。然后加密管理逻辑创建复合消息部分以添加到当前复合消息142。为此,加密管理逻辑154可以创建将被添加到源消息分量中的长度字段(308),并创建线程ID字段(310),以获得复合消息部分(312)。加密管理逻辑154将复合消息部分添加到复合消息(314)。
如果批处理定时器没有超时,加密管理逻辑154继续获得源消息分量,直到复合消息142没有到达其最大大小。然而,如果批处理定时器已经超时,或如果达到了最大复合消息大小,加密管理逻辑154重置批处理定时器(316),并且将复合消息写入GPU 106(318)。关于复合消息142中的批处理大小的另一个限制可以由GPU的最大处理容量来设定。例如,如果GPU具有K个单元的最大容量(例如,K是像素着色器或者其他处理单元的数目,或者是GPU上的容量),继而系统100可以将最大复合消息大小设置为包括不多于K个复合消息部分。
因而,不会强迫线程等待多于批处理定时器所指定的最大时间量,直到由线程提交的源消息分量发送到GPU 106以进行处理。批处理定时器的适当值可以取决于特定的系统实现,并且可以根据下面描述的统计分析、随机地、根据预选默认值或以许多其它方法来进行选择。一旦复合消息142被写入GPU 106,加密管理逻辑154便启动GPU 106算法对复合消息142的执行(320)。用于初始化执行的一个机制是向GPU 106发出绘制调用。加密管理逻辑154清除复合消息142,以便准备装配下一复合消息并将其提交给GPU 106。
GPU 106上的算法实现负责关注给予复合消息142结构的个体线程ID、消息长度和源消息分量。因而,例如,加密算法144负责执行GPU中处理单元上的片段,以用于分离复合消息部分、处理源消息分量以及创建已处理的消息分量结果,该消息分量结果利用与复合消息部分最初提供的相同线程标识符来标记。换句话说,算法实现认识到,复合消息142不一定是有待处理的一个单个消息,而是将在GPU上并行处理的较小的复合消息部分的复合,其中已处理结果被写入已处理消息202。
图4示出了可由加密管理逻辑154实现用以将由GPU处理的消息返回应用线程的处理的流程图。加密管理逻辑154读取已处理消息202(例如,从GPU 106的只写纹理存储器146中)(402)。加密管理逻辑154从处理消息202中选择下一个已处理消息部分(404)。如上所述,加密管理逻辑154唤醒已处理消息部分中的线程ID所标识的线程(406)。一旦唤醒线程,加密管理逻辑154将已处理消息部分中的已处理消息分量发送到该线程(408)。然后线程继续正常地处理。加密管理逻辑154可以将已处理消息202分解成已处理消息202中存在的那么多个已处理消息部分。
图5示出了可由加密管理调整逻辑158(“调整逻辑158”)实现的处理的流程图。调整逻辑158可以仿真或监控系统100中运行应用的执行(502)。随着应用执行,调整逻辑158收集关于应用执行的统计,包括消息大小、API处理调用的数量、处理调用的时间分布和任何其它期望的执行统计(504)。可以使用用于队列分析和批处理服务的工具来进行统计分析,以确定期望的消息到达率、消息大小、平均队列长度、平均等待时间或等待处理的长期平均数量(例如,利用稳定系统中消费者的长期平均数量N等于长期平均到达率λ乘以消费者花费在系统中的长期平均时间T的Little定律)和其它参数(506)。
给定期望的到达率、消息大小和用于处理调用的其它统计,调整逻辑158可以设置批处理定时器、最大复合消息大小、复合消息中的最大复合消息部分以及其他加密管理参数156,以便实现系统100的任何期望处理响应。换句话说,可以调整加密管理参数156,以确保应用的平均等待时间不会长于已处理结果的期望时间。
图7示出了最大复合消息容量的平均等待时间的仿真结果700的示例。利用这种统计分析结果,调整逻辑158可以设置最大复合消息长度以最小化平均等待时间,或者获得相对于其它考虑(如图6中示出的每字节处理的代价)而平衡平均等待时间的平均等待时间结果。
上面描述的系统优化针对大规模多线程应用的加密,其中每个线程执行任何期望的处理逻辑。系统实现加密管理逻辑,其从CPU上执行的不同线程中收集源消息分量,将源消息分量批处理到复合消息部分中的复合消息中。然后系统将复合消息发送到GPU。GPU本地执行任何期望的处理算法,诸如在GPU上对复合消息部分中的源消息分量进行加密或解密的加密算法。
GPU将处理消息返回CPU。然后加密管理逻辑将已处理消息分解为已处理消息部分,并且将每个已处理消息部分传回正确的执行线程(例如,引起源消息分量的线程)。系统从而显著地降低了在CPU和GPU之间传递多个小消息所关联的开销。系统100不仅是成本有效的,并且还可以将密码算法的性能开销减少到12%或更少,其响应时间小于200msec,这显著小于提供加密服务的其他现有技术尝试。
上面描述的逻辑可以用硬件和软件的任何组合实现。例如,软件库中提供的程序可以提供收集源消息、将源消息批处理到复合消息、将复合消息发送到GPU、接收处理消息、将处理消息分解成处理消息分量和将处理消息分配到其目标线程的功能。这种软件库可以包括动态链接库(DLL),或其它应用程序接口(API)。上面描述的逻辑可以存储到计算机可读介质上,如CDROM、硬盘驱动器、软盘驱动器、闪存或其它计算机可读介质。逻辑还可以用具有逻辑的信号编码作为从源传播到目的地的信号。
此外,注意系统实现可以表示底层物理对象的数据的电子转换。例如,收集和批处理逻辑通过选择地控制集合将离散源消息转换成为复合消息。分解和分配逻辑通过选择地控制处理复合消息的分离转换处理复合消息。这些消息可以代表多种多样的物理对象,包括仅作为例子,图像、视频、财务报表(例如,信用卡、银行账户和抵押声明)、电子邮件消息或任何其它物理对象。
另外,系统可以作为特定机器来实现。例如,特定机器可以包括CPU、GPU和用于实现上面指出的加密(或其它API调用过程)管理逻辑的软件库。从而,特定机器可以包括CPU、GPU和存储上面描述的加密管理逻辑的存储器。添加加密管理逻辑可以包括构建功能调用到来自软件库的应用其处理收集、批处理、发送、接收、分解和分配上面指出的逻辑或提供API调用包装器和程序逻辑以处理上面指出的处理。然而,应用或应用的执行环境可以用其它的方法延伸以促成与加密管理逻辑的交互。
虽然已经描述了本发明的各种实施方式,但是对于本领域技术人员而言易见的是,在本发明的范围内可以有多个其它的实施方式和实现。因此,除非根据所附权利要求书及其等价项,否则不应对本发明加以限制。

Claims (22)

1.一种用于多线程环境中的加密和解密操作的管理控制的机器,所述机器包括:
中央处理单元(CPU);
图形处理单元(GPU),其包括纹理存储器和执行加密算法的多个处理单元;以及
耦合至所述CPU的存储器,所述存储器包括:
包含多个执行线程的应用;
由所述应用的所述多个执行线程生成的源消息分量;以及
加密管理逻辑,其可操作以用于:
将所述源消息分量批处理到复合消息中;以及
将所述复合消息传送至所述GPU,以便通过所述加密算法来进行处理。
2.根据权利要求1所述的机器,其中所述加密管理逻辑可操作以用于:
通过将所述复合消息写入所述GPU的所述纹理存储器来传送所述复合消息。
3.根据权利要求1所述的机器,其中所述加密管理逻辑进一步可操作以用于:
通过将线程标识符和消息长度添加到每个源消息分量来构造复合消息部分。
4.根据权利要求3所述的机器,其中所述加密管理逻辑可操作以用于通过如下操作来批处理所述源消息分量:
将每个所述复合消息部分添加至所述复合消息。
5.根据权利要求1所述的机器,其中所述加密管理逻辑进一步可操作以用于:
将所述源消息分量批处理到所述复合消息中,直到达到最大复合消息大小。
6.根据权利要求1所述的机器,其中所述加密管理逻辑进一步可操作以用于:
将所述源消息分量批处理到所述复合消息中,直到批处理定时器超时,以及继而将所述复合消息传送至所述GPU。
7.根据权利要求1所述的机器,其中所述存储器进一步包括:
API调用包装器,其截获所述多个执行线程的消息加密功能调用,并且将所述消息加密功能调用重定向到所述加密管理逻辑。
8.一种用于多线程环境中的加密和解密操作的管理控制的机器,所述机器包括:
中央处理单元(CPU);
图形处理单元(GPU),其包括只写纹理存储器和执行加密算法的多个处理单元;以及
耦合至所述CPU的存储器,所述存储器包括:
第一应用,其包括多个执行线程;以及
加密管理逻辑,其可操作以用于:
从所述GPU接收已由所述加密算法处理过的已处理消息;
将所述已处理消息分解为包括已处理消息分量的已处理消息部分;以及
根据哪些线程发起了引致所述已处理消息分量的源消息分量,将所述已处理消息分量选择性地传送给应用的多个执行线程中的选定线程。
9.根据权利要求8所述的机器,其中所述加密管理逻辑可操作以用于:通过从所述GPU的所述只写纹理存储器读取所述已处理消息来接收所述已处理消息。
10.根据权利要求8所述的机器,其中所述加密管理逻辑进一步可操作以用于:
将所述已处理消息分解为包括线程标识符和已处理消息分量的已处理消息部分;以及
将所述已处理消息分量传送至所述线程标识符所标识的多个执行线程。
11.根据权利要求8所述的机器,其中所述加密管理逻辑进一步可操作以用于:
对于将向其传送所述已处理消息分量的每个线程启动唤醒命令。
12.一种制品,包括:
计算机可读存储器;以及
加密管理逻辑,其存储在所述存储器中,并且可操作以用于:
从应用的多个执行线程获得源消息分量;
将所述源消息分量批处理到复合消息中;以及
将所述复合消息传送至图形处理单元(GPU),以便由所述GPU上执行的加密算法来进行处理。
13.根据权利要求12所述的制品,其中所述加密管理逻辑可操作以用于:
通过将所述复合消息写入所述GPU的纹理存储器来传送所述复合消息。
14.根据权利要求12所述的制品,其中所述加密管理逻辑可进一步操作以用于:
通过将线程标识符和消息长度添加到每个源消息分量,来构造复合消息部分。
15.根据权利要求14所述的制品,其中所述加密管理逻辑可操作以用于通过如下操作来批处理所述源消息分量:
将每个所述复合消息部分添加到所述复合消息中。
16.根据权利要求12所述的制品,其中所述加密管理逻辑进一步可操作以用于:
将所述源消息分量批处理到所述复合消息中,直到达到最大复合消息大小。
17.根据权利要求12所述的制品,其中所述加密管理逻辑进一步可操作以用于:
将所述源消息分量批处理到所述复合消息中,直到批处理定时器超时,以及继而将所述复合消息传送到所述GPU。
18.根据权利要求12所述的制品,其中所述加密管理逻辑响应于API调用包装器,所述API调用包装器截获所述多个执行线程的消息加密功能调用,并将所述消息加密功能调用重定向到所述加密管理逻辑。
19.一种制品,包括:
计算机可读存储器;以及
加密管理逻辑,其存储在所述存储器中,并且可操作以用于:
从图形处理单元(GPU)接收已由所述GPU上执行的加密算法处理过的已处理消息;
将所述已处理消息分解为包括已处理消息分量的已处理消息部分;以及
根据哪些线程发起了引致所述已处理消息分量的源消息分量,将所述已处理消息分量选择性地传送至应用的多个执行线程中的选定线程。
20.根据权利要求19所述的制品,其中所述加密管理逻辑可操作以用于:通过从所述GPU的所述只写纹理存储器读取所述已处理消息来接收所述已处理消息。
21.根据权利要求19所述的制品,其中所述加密管理逻辑进一步可操作以用于:
将所述已处理消息分解为包括线程标识符和已处理消息分量的已处理消息部分;以及
将所述已处理消息分量传送到所述线程标识符所标识的所述多个执行线程。
22.根据权利要求19所述的制品,其中所述加密管理逻辑进一步可操作以用于:
对于将向其传送所述已处理消息分量的每个线程启动唤醒命令。
CN200910221859.4A 2008-11-19 2009-11-18 用于保障多线程服务器应用的系统 Active CN101739290B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/274,130 2008-11-19
US12/274,130 US20100125740A1 (en) 2008-11-19 2008-11-19 System for securing multithreaded server applications

Publications (2)

Publication Number Publication Date
CN101739290A true CN101739290A (zh) 2010-06-16
CN101739290B CN101739290B (zh) 2014-12-24

Family

ID=41435168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910221859.4A Active CN101739290B (zh) 2008-11-19 2009-11-18 用于保障多线程服务器应用的系统

Country Status (4)

Country Link
US (1) US20100125740A1 (zh)
EP (1) EP2192518B1 (zh)
CN (1) CN101739290B (zh)
CA (1) CA2686910C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015123840A1 (en) * 2014-02-20 2015-08-27 Intel Corporation Workload batch submission mechanism for graphics processing unit

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832495B2 (en) * 2007-05-11 2014-09-09 Kip Cr P1 Lp Method and system for non-intrusive monitoring of library components
US8650241B2 (en) 2008-02-01 2014-02-11 Kip Cr P1 Lp System and method for identifying failing drives or media in media library
US7908366B2 (en) * 2008-02-01 2011-03-15 Crossroads Systems, Inc. Media library monitoring system and method
US7974215B1 (en) * 2008-02-04 2011-07-05 Crossroads Systems, Inc. System and method of network diagnosis
US9015005B1 (en) 2008-02-04 2015-04-21 Kip Cr P1 Lp Determining, displaying, and using tape drive session information
US8645328B2 (en) * 2008-02-04 2014-02-04 Kip Cr P1 Lp System and method for archive verification
US9866633B1 (en) 2009-09-25 2018-01-09 Kip Cr P1 Lp System and method for eliminating performance impact of information collection from media drives
US8631281B1 (en) 2009-12-16 2014-01-14 Kip Cr P1 Lp System and method for archive verification using multiple attempts
US20110161675A1 (en) * 2009-12-30 2011-06-30 Nvidia Corporation System and method for gpu based encrypted storage access
EP2544115A1 (fr) * 2011-07-06 2013-01-09 Gemalto SA Procédé d'exécution d'un traitement dans un dispositif sécurisé
US10419401B2 (en) * 2016-01-08 2019-09-17 Capital One Services, Llc Methods and systems for securing data in the public cloud
CN108574952B (zh) * 2017-03-13 2023-09-01 中兴通讯股份有限公司 一种通信方法、装置和设备
KR102080280B1 (ko) * 2017-04-12 2020-02-21 주식회사 지티웨이브 가상 사설 네트워크 서버

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162716B2 (en) * 2001-06-08 2007-01-09 Nvidia Corporation Software emulator for optimizing application-programmable vertex processing
EP1821201A2 (en) * 2006-02-08 2007-08-22 Nvidia Corporation Graphics processing unit used for cryptographic processing
US20070294696A1 (en) * 2006-06-20 2007-12-20 Papakipos Matthew N Multi-thread runtime system
CN101297277A (zh) * 2005-10-26 2008-10-29 微软公司 静态可验证进程间通信隔离进程

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875329A (en) * 1995-12-22 1999-02-23 International Business Machines Corp. Intelligent batching of distributed messages
JP3685931B2 (ja) * 1998-07-31 2005-08-24 株式会社ソニー・コンピュータエンタテインメント 情報処理装置の立ち上げ方法、記憶媒体、及び情報処理装置
US7234144B2 (en) * 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
US20030198345A1 (en) * 2002-04-15 2003-10-23 Van Buer Darrel J. Method and apparatus for high speed implementation of data encryption and decryption utilizing, e.g. Rijndael or its subset AES, or other encryption/decryption algorithms having similar key expansion data flow
GB0214620D0 (en) * 2002-06-25 2002-08-07 Koninkl Philips Electronics Nv Round key generation for AES rijndael block cipher
US7392399B2 (en) * 2003-05-05 2008-06-24 Sun Microsystems, Inc. Methods and systems for efficiently integrating a cryptographic co-processor
US20050055594A1 (en) * 2003-09-05 2005-03-10 Doering Andreas C. Method and device for synchronizing a processor and a coprocessor
US7533312B2 (en) * 2004-07-29 2009-05-12 Agilent Technologies, Inc. System and method for testing of electronic circuits
US7839854B2 (en) * 2005-03-08 2010-11-23 Thomas Alexander System and method for a fast, programmable packet processing system
US7496770B2 (en) * 2005-09-30 2009-02-24 Broadcom Corporation Power-efficient technique for invoking a co-processor
US7596540B2 (en) * 2005-12-01 2009-09-29 Exent Technologies, Ltd. System, method and computer program product for dynamically enhancing an application executing on a computing device
US7656409B2 (en) * 2005-12-23 2010-02-02 Intel Corporation Graphics processing on a processor core
US7890955B2 (en) * 2006-04-03 2011-02-15 Microsoft Corporation Policy based message aggregation framework
US7925860B1 (en) * 2006-05-11 2011-04-12 Nvidia Corporation Maximized memory throughput using cooperative thread arrays
US7656326B2 (en) * 2006-06-08 2010-02-02 Via Technologies, Inc. Decoding of context adaptive binary arithmetic codes in computational core of programmable graphics processing unit
US7746350B1 (en) * 2006-06-15 2010-06-29 Nvidia Corporation Cryptographic computations on general purpose graphics processing units
US7702100B2 (en) * 2006-06-20 2010-04-20 Lattice Semiconductor Corporation Key generation for advanced encryption standard (AES) Decryption and the like
US8108659B1 (en) * 2006-11-03 2012-01-31 Nvidia Corporation Controlling access to memory resources shared among parallel synchronizable threads
US8286196B2 (en) * 2007-05-03 2012-10-09 Apple Inc. Parallel runtime execution on multiple processors
US7877573B1 (en) * 2007-08-08 2011-01-25 Nvidia Corporation Work-efficient parallel prefix sum algorithm for graphics processing units
US7929707B1 (en) * 2007-09-06 2011-04-19 Elcomsoft Co. Ltd. Use of graphics processors as parallel math co-processors for password recovery
US9596324B2 (en) * 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
US8788841B2 (en) * 2008-10-23 2014-07-22 Samsung Electronics Co., Ltd. Representation and verification of data for safe computing environments and systems
US8368701B2 (en) * 2008-11-06 2013-02-05 Via Technologies, Inc. Metaprocessor for GPU control and synchronization in a multiprocessor environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162716B2 (en) * 2001-06-08 2007-01-09 Nvidia Corporation Software emulator for optimizing application-programmable vertex processing
CN101297277A (zh) * 2005-10-26 2008-10-29 微软公司 静态可验证进程间通信隔离进程
EP1821201A2 (en) * 2006-02-08 2007-08-22 Nvidia Corporation Graphics processing unit used for cryptographic processing
US20070294696A1 (en) * 2006-06-20 2007-12-20 Papakipos Matthew N Multi-thread runtime system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015123840A1 (en) * 2014-02-20 2015-08-27 Intel Corporation Workload batch submission mechanism for graphics processing unit
CN105940388A (zh) * 2014-02-20 2016-09-14 英特尔公司 用于图形处理单元的工作负荷批量提交机制
TWI562096B (en) * 2014-02-20 2016-12-11 Intel Corp Workload batch submission mechanism for graphics processing unit

Also Published As

Publication number Publication date
CN101739290B (zh) 2014-12-24
US20100125740A1 (en) 2010-05-20
CA2686910C (en) 2017-04-18
EP2192518A1 (en) 2010-06-02
EP2192518B1 (en) 2016-01-27
CA2686910A1 (en) 2010-05-19

Similar Documents

Publication Publication Date Title
CN101739290A (zh) 用于保障多线程服务器应用的系统
Fusco et al. High speed network traffic analysis with commodity multi-core systems
CN101667284B (zh) 用于中央处理单元和图形处理单元之间通信的设备和方法
US10733019B2 (en) Apparatus and method for data processing
US9001137B2 (en) Technique for GPU command scheduling
JP4298971B2 (ja) セキュリティ・コプロセッサのためのインターフェース
CN111427751B (zh) 基于异步处理机制对业务进行处理的方法及系统
CN102915254A (zh) 任务管理方法及装置
US20030020621A1 (en) Method and apparatus for establishing secure sessions
US20170097854A1 (en) Task placement for related tasks in a cluster based multi-core system
CN104380258A (zh) 对图形硬件实施调度操作
WO2018233299A1 (zh) 调度处理器的方法、装置、设备及介质
KR101908341B1 (ko) Cpu와 gpu간에 동기화를 가속화하여 수행하는 데이터 프로세서
US20160019089A1 (en) Method and system for scheduling computing
CN103870337A (zh) 一种基于seda的esb组件实现方法
CN102609307A (zh) 多核多线程双操作系统网络设备及其控制方法
CN116132420A (zh) 一种面向通用互联网平台的集群密码加速方法及装置
CN112769788B (zh) 计费业务数据处理方法、装置、电子设备及存储介质
CN114661409A (zh) 处理数据分组以进行逻辑和虚拟交换机加速的方法和设备
CN116483536B (zh) 数据调度方法、计算芯片及电子设备
Yazdani et al. Enhancing edge computing with unikernels in 6G networks
CN115391053B (zh) 基于cpu和gpu混合计算的在线服务方法及装置
CN102438230B (zh) 终端和数据业务处理方法
CN117271074A (zh) 一种面向服务的轻量级异构计算集群系统
Khasgiwale et al. Shimmy: Accelerating Inter-Container Communication for the IoT Edge

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: ACCENTURE GLOBAL SERVICES GMBH

Free format text: FORMER OWNER: ACCENTURE INTERNATIONAL CO., LTD.

Effective date: 20110113

Owner name: ACCENTURE INTERNATIONAL CO., LTD.

Free format text: FORMER OWNER: ACCENTURE GLOBAL SERVICES GMBH

Effective date: 20110113

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: SCHAFFHAUSEN, SWITZERLAND TO: LUXEMBOURG

Free format text: CORRECT: ADDRESS; FROM: LUXEMBOURG TO: DUBLIN, IRELAND

TA01 Transfer of patent application right

Effective date of registration: 20110113

Address after: Dublin, Ireland

Applicant after: ACCENTURE GLOBAL SERVICES Ltd.

Address before: Luxemburg Luxemburg

Applicant before: Accenture international LLC

Effective date of registration: 20110113

Address after: Luxemburg Luxemburg

Applicant after: Accenture international LLC

Address before: Schaffhausen

Applicant before: ACCENTURE GLOBAL SERVICES Ltd.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant