为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 专业英语翻译

专业英语翻译

2017-09-28 50页 doc 176KB 21阅读

用户头像

is_562397

暂无简介

举报
专业英语翻译专业英语翻译 第五章 So What is Cloud Computing? We see Cloud Computing as a computing model, not a technology. In this model “customers” plug into the “cloud” to access IT resources which are priced and provided “on-demand”. Essentially, IT resources are rented and share...
专业英语翻译
专业英语翻译 第五章 So What is Cloud Computing? We see Cloud Computing as a computing model, not a technology. In this model “customers” plug into the “cloud” to access IT resources which are priced and provided “on-demand”. Essentially, IT resources are rented and shared among multiple tenants much as office space, apartments, or storage spaces are used by tenants. Delivered over an Internet connection, the “cloud” replaces the company data center or server providing the same service. Thus, Cloud Computing is simply IT services sold and delivered over the Internet. Refer to section of Types of Cloud Computing. Cloud Computing vendors combine virtualization (one computer hosting several “virtual” servers), automated provisioning (servers have software installed automatically), and Internet connectivity technologies to provide the service[1]. These are not new technologies but a new name applied to a collection of older (albeit updated) technologies that are packaged, sold and delivered in a new way. A key point to remember is that, at the most basic level, your data resides on someone else’s server(s). This means that most concerns (and there are potentially hundreds) really come down to trust and control issues. Do you trust them with your data? 那么,什么是云计算, 我们看到云计算作为一种计算模式,而不是一个技术。在这种模式的“客户”到“云” 访问它的价格和“按需”提供的资源插件。从本质上讲,IT资源之间的大部分写字楼, 公寓,或存储空间的多个租户租用和共享,是由住户使用。 “云”通过Internet连接 传递,取代该公司的数据中心或服务器提供相同的服务。因此,云计算是简单地在互联 网上销售和交付IT服务。是指部分类型的云计算。 云计算厂商将虚拟化(一台电脑主机多个“虚拟”的服务器),自动配置(服务器有软 件自动安装),互联网连接技术,提供的服务[1]。这些都不是新技术,但一个新的名字 (虽然更新)适用于老年人的集合打包,销售和技术提供一种新的方式。 关键的一点要记住的是,在最基本的层面上,您的数据驻留在别人的服务器(S)。这意 味着,最关心的(和有潜在的数百个)真的来了,信任和控制问题。你信任你的数据呢, The Economics Economies of scale and skill drive Cloud Computing economics. As with rented Real Estate, the costs of ownership are pooled and spread among all tenants of the multi-tenant Cloud Computing solution. Consequentially, acquisition costs are low but tenants never own the technology asset and might face challenges if they need to “move” or end the service for any reason[2]. Something that is often overlooked when evaluating Cloud Computing costs is the continued need to provide LAN services that are robust enough to support the Cloud solution. These costs are not always small. For example, if you have 6 or more workstation computers, you will probably need to continue to maintain a server in a domain controller role (to ensure name resolution), at least one switch (to connect all of the computers to each other and the router), one or more networked printers, and the router for the Internet connection. What do I need to use Cloud Computing? All that is really needed to acquire and use Cloud Computing solutions is a credit card (or other payment method) and a LAN with an Internet connection robust enough to support the Cloud delivered service. These two requirements are deceptively simple. From a technical point of view the biggest challenge for businesses, particularly SMBs, may be the need for an appropriately robust LAN infrastructure and Internet connection. Typically, Internet access is provided by a single commercial service ISP provider through a single port on a router. A characteristic of this type installation is that all of the computers connecting through the LAN share the Internet bandwidth equally. This can quickly become an issue. 经济学 规模经济和技能驱动云计算经济学。与出租房地产,所有权的费用汇集和传播的多租户 云计算解决的所有住户之间。作出相应,收购成本低,但住户从未拥有的技术资产, 并可能面临的挑战,如果他们需要“移动”,或因任何原因终止服务[2]。 评估云计算成本时,常常被忽视的东西,是需要继续提供网络服务,这是强大到足以支 持云解决方案。这些费用并非总是很小。例如,如果你有6个或更多的工作站电脑,你 可能会需要继续保持在一个域控制器角色的服务器(确保名称解析),至少有一个开关 (连接所有的计算机和对方的路由器),一个或多个网络打印机和互联网连接的路由器。 使用云计算我需要什么, 真正需要购买和使用云计算解决方案,是一个信用卡(或其他付款方式)和一个强大到 足以支持云提供的服务与互联网连接的局域网。看似简单的这两项要求。 从技术角度查看企业面临的最大挑战,尤其是中小型企业,可能需要适当强大的网络基 础设施和互联网连接。通常情况下,互联网接入提供一个单一的商业服务的ISP提供商 通过在路由器上的单个端口。这种类型的安装的一个特点是,所有的计算机通过局域网 共享连接互联网的带宽同样。这能迅速成为一个问题。 Types of Cloud Computing SaaS (Software As A Service) Is the most widely known and widely used form of cloud computing. It provides all the functions of a sophisticated traditional application to many customers and often thousands of users, but through a Web browser, not a “locally-installed” application[4]. Little or no code is running on the Users local computer and the applications are usually tailored to fulfill specific functions. SaaS eliminates customer worries about application servers, storage, application development and related, common concerns of IT. Highest-profile examples are Salesforce.com, Google's Gmail and Apps, instant messaging from AOL, Yahoo and Google, and VoIP from Vonage and Skype. PaaS (Platform as a Service) Delivers virtualized servers on which customers can run existing applications or develop new ones without having to worry about maintaining the operating systems, server hardware, load balancing or computing capacity. These vendors provide APIs or development platforms to create and run applications in the cloud – e.g. using the Internet. Managed Service providers with application services provided to IT departments to monitor systems and downstream applications such as virus scanning for e-mail are frequently included in this category[5]. Well known providers would include Microsoft's Azure, Salesforce's Force.com, Google Maps, ADP Payroll processing, and US Postal Service offerings. IaaS (Infrastructure as a Service) Delivers utility computing capability, typically as raw virtual servers, on demand that customers configure and manage. Here Cloud Computing provides grids or clusters or virtualized servers, networks, storage and systems software, usually (but not always) in a multitenant architecture. IaaS is designed to augment or replace the functions of an entire data center. This saves cost (time and expense) of capital equipment deployment but does not reduce cost of configuration, integration or management and these tasks must be performed remotely. Vendors would include Amazon.com (Elastic Compute Cloud [EC2] and Simple Storage), IBM and other traditional IT vendors. 云计算的类型 的SaaS(软件作为服务) 是云计算最广为人知的和广泛使用的形式。它提供了一个复杂的传统应用程序的所有功 能,许多客户和经常成千上万的用户,但不是一个“本地安装”应用程序通过Web浏览 器,[4]。很少或根本没有代码,用户的本地计算机上运行的应用程序通常是量身定制, 以满足特定功能。 SaaS的消除对应用服务器,存储,应用软件开发和相关的共同关心 的问题,IT客户的后顾之忧。 最引人注目的例子是Salesforce.com,谷歌的Gmail和Apps,从AOL,雅虎和谷歌即时 消息,并从Vonage和Skype的VoIP。 的PaaS(平台即服务) 提供虚拟服务器上的客户可以运行现有的应用程序,而不必担心维护的操作系统,服务 器硬件,负载均衡或计算能力或开发新的。这些供应商提供API或开发平台来创建和运 行在云中的应用 - 例如使用互联网。应用服务托管服务提供商提供的IT部门监控系统 和下游应用,如电子邮件病毒扫描经常被包括在这一类[5]。 众所周知的供应商将包括微软的Azure,Salesforce的Force.com,谷歌地图,ADP薪 资处理,美国邮政服务产品。 的IaaS(基础设施即服务) 提供实用的计算能力,通常作为原始的虚拟服务器上的需求,客户的配置和管理。在这 里,云计算提供网格或集群或虚拟服务器,网络,存储和系统软件,通常在一个多租户 架构(但不总是)。 IaaS是设计,以增加或更换整个数据中心的职能。这样可以节省资 本设备部署的成本(时间和费用),但不降低配置,整合或管理成本,这些任务必须远 程执行。 供应商将包括亚马逊(弹性计算云EC2上]和简单存储),IBM和其他传统的IT厂商 第六章 The term Internet of Things appears to have been coined by a member of the RFID development community circa 2000, who referred to the possibility of discovering information about a tagged object by browsing an Internet address or database entry that corresponds to a particular RFID. Since that time, visionaries have seized on the phrase “Internet of Things” to refer to the general idea of things, especially everyday objects, that are readable, recognizable, locatable, addressable, and/or controllable via the Internet—whether via RFID, wireless LAN, wide-area network, or other means. Everyday objects includes not only the electronic devices we encounter everyday, and not only the products of higher technological development such as vehicles and equipment, but things that we do not ordinarily think of as electronic at all—such as food, clothing, and shelter; materials, parts, and subassemblies; commodities and luxury items; landmarks, boundaries, and monuments; and all the miscellany of commerce and culture. Although analysts define the IoT in terms of connected everyday objects, the nature of the connection remains to be determined. A two-way connection by means of the Internet Protocol constitutes the ideal case, but the originators of the IoT concept appear to have emphasized a simpler model of RFID query and response. The IoT will be inextricable from sensor networks that monitor things but do not control things. Both connected everyday objects and sensor networks both leverage a common set of technological advances toward miniature, power-efficient sensing, processing, and wireless communication. Analysts commonly describe two distinct modes of communication in the Internet of Things: thing to person and thing-to-thing communication. 长期上网的事情似乎已经由RFID发展社区大约2000年,谁发现通过浏览互联网地址或 数据库条目对应一个特定的RFID标签对象的信息的可能性的成员创造。自那时以来,高瞻 远瞩,抓住了那句“物联网”指的事情,尤其是日常的对象,是通过互联网无论是通过RFID 的可读性,可识别,可定位,可寻址,和/或可控的总体思路,无线局域网,广域网,或其 他手段。日常物品包括电子设备不仅我们遇到的日常生活,不仅较高的技术开发的产品,如 车辆和设备,但是,我们通常不认为所有这些,如电子,食品,服装,住房的东西;材料, 零件和组件;商品和奢侈品;地标,边界,古迹;所有的商业和文化的杂物。 虽然师定义IOT,连日常物品连接的性质仍有待确定。通过互联网的双向连接, 构成了理想的情况下,但物联网概念的始作俑者似乎都强调了RFID的查询和响应简单的模 型。物联网将是不可分割传感器网络监控的东西,但不控制的东西。首尾相连的日常物体和 传感器网络都利用一套共同对微型,低功耗传感,处理,无线通信技术的进步。分析家普遍 描述了两种不同的通信联网模式:事情和事情的东西的人沟通。 Thing-to-person (and person-to-thing) communications encompasses a number of technologies and applications wherein people interact with things and vice versa, including remote access to objects by humans, and objects (sometimes called “blogjects”) that continuously report their status, whereabouts, and sensor data. Thing-to-thing communications encompasses technologies and applications wherein everyday objects and infrastructure interact with no human originator, recipient, or intermediary. Objects can monitor other objects, take corrective actions, and notify or prompt humans as required. Machine-to-machine communication is a subset of thing-to-thing communication; but machine-to-machine communication often exists within large-scale IT systems and so encompasses things that may not qualify as “everyday objects”. Developers and visionaries have described a number of concepts that are distinct yet closely related to the IoT. Sensor networks need not be connected to the Internet and indeed often reside in remote sites, vehicles, and buildings having no Internet connection. Smart dust is a term that some have used to express a vision of tiny, wireless-connected sensors; more recently, others use the term to describe any of several technologies that range from the size of a pack of gum to a pack of cigarettes, and that are widely available to system developers. One may think of the vision of tiny instances of smart dust as a Disruptive Technologies development that will arise after a long period of IoT evolution, during which a number of disruptions are foreseeable well before usable wireless sensors shrink to the size of gravel. 事到人(人事)通讯包括一些技术和应用,其中人用的东西,反之亦然,包括人类的远 程访问的对象,和对象(有时称为“blogjects”)连续报道互动他们的身份,行踪和传感器 数据。 事情的东西通讯,包括技术和应用,其中日常物品和基础设施,没有人类的鼻祖,收 件人,或中介互动。可以监视其他对象的对象,采取纠正措施,并通知或提示人类所需。机 对机通信的事情,事情沟通的一个子集,但机器对机器通信,往往存在于大型IT系统等包 含的东西,可能没有资格作为“日常物品”。 开发者和梦想家所描述的一些独特而又密切相关的物联网的概念是。 传感器网络需要互联网连接,的确经常驻留在远程站点,车辆,建筑物有没有互联网连接。 智能灰尘是长远一些用来表达一个微小的,无线连接的传感器的视野;最近,别人用这个词 来描述任何几个技术,范围从一包口香糖大小的一包香烟,而且是广泛地提供给系统开发。 有人可能会认为智能灰尘微小的情况下,作为一个颠覆性技术的发展,将出现长时间后物联 网的演变,在这期间的中断数量是前缩小到可用的无线传感器砾石的大小可预见的视力。 Ubiquitous positioning describes technologies for locating objects that may reside anywhere, including indoors and underground locations where satellite signals may be unavailable or otherwise inadequate. Biometrics enables technology to recognize people and other living things, rather than inanimate objects. Connected everyday objects could recognize authorized users by means of fingerprint, voiceprint, iris scan, or other biometric technology. Machine vision is an approach to the IoT that can monitor objects having no onboard sensors, controllers, or wireless interfaces. Progress in the following technologies will contribute to the development of the IoT: Machine-to-machine interfaces and protocols of electronic communication set the rules of engagement for two or more nodes on a network. Microcontrollers are computer chips that are designed to be embedded into objects other than computers. Wireless communication is familiar to most people in the developed world. Many different wireless technologies have the potential to play important roles in the IoT including short-range and long-range channels; as well as bidirectional and unidirectional channels. Wireless devices identify themselves; in practice virtually all wireless Internet devices contain unique identifiers, including all cell phones and Wi-Fi clients. However, see the next bullet. 无所不在的定位描述为定位对象可能驻留在任何地方,包括室内和地下的卫星信号的地 方可能无法或其他不足的技术。 生物识别技术识别人及其他生活的东西,而不是无生命的物体。连日常的对象可以识 别授权用户指纹,声纹,虹膜扫描,或其他生物识别技术的手段。 机器视觉是一种,可以监控对象,有没有板载传感器,控制器,或无线接口的IOT。 在下面的技术进步,将有助于物联网的发展: 机器对机器的电子通讯接口和协议设置为两个或两个以上的节点在网络上的交战规 则。 微控制器被设计为嵌入到比电脑的其他对象的计算机芯片。 无线通信是在发达世界的大多数人所熟悉。许多不同的无线技术有可能在IOT发挥的 重要作用,包括短距离和长距离通道;以及双向和单向通道。无线设备确定自己在实践中, 几乎所有的无线上网设备包含唯一标识符,包括所有的手机和Wi-Fi客户端。然而,看到未 来的子弹。 RFID technology resembles an electronic barcode that a reader device can detect even without line of sight. Some RFID readers can identify multiple objects concurrently. And some RFID tag-reader architectures support security features such as requiring a human operator to input a challenge code before decoding an ID. RFID have varying sizes, power requirements, operating frequencies, amounts of rewriteable and nonvolatile storage, and software intelligence; ranges vary from a few cm to hundreds of meters. However, larger devices having an internal power source tend to operate at longer ranges; conversely, smaller devices having no internal power source (RF engineers say they are illuminated by the reader device, much as a radar illuminates a target) tend to operate at shorter ranges. Also, architectures that support more storage, rewriteability, and processing tend to cost more than simpler architectures. Energy harvesting technologies capture small but usable amounts of electrical energy from the environment. Current energy-harvesting R&D concentrates on adventitious temperature variations, ambient sound and vibration, and ambient RF. Unlike passive RFIDs, which simply resonate when illuminated, an energy-harvesting transducer produces electrical power that runs a microcontroller, sensor, and/or network interface in whole or part. Technically, energy harvesting transducers respond not only to adventitious sources but also to intentional transmissions of power, say, via RF and acoustic channels. A dramatic example of intentional transmission of power via RF channel: MIT’s recent “Witricity” demonstration of closely-coupled resonators, enabling relatively efficient wireless power transfers over a distance of a few feet. Sensors detect changing attributes in the environment and report them to a system;sensor networks aim to exploit the benefits of sensing at more than one location. Sensors are a type of transducer that must produce the miniscule amount of power required to convey information at a usable error rate. Sound, light, atmospheric conditions, vibrations, and other environmental signals are all fair game for sensordesigners. RFID技术类似于一个电子条码,读卡设备,甚至可以检测无视线。一些RFID阅读器可 以同时识别多个物体。和一些RFID标签阅读器的架构支持安全功能,如需要人为操作,解 码之前输入一个ID是一个挑战代码。 RFID技术有不同的大小,功率要求,工作频率,可 重写的非易失性存储金额,和软件的情报;范围从几厘米到几百米不等。然而,大型设备, 有一个内部电源往往在较长的范围经营;反之,较小的设备,有没有内部电源(RF工程师说, 他们照亮读者的设备,就像一个雷达照亮目标)往往在较短的操作范围。此外,架构,支持 更多的存储空间,rewriteability和处理往往要花费超过简单的架构。 能量收集技术从环境捕获量小,但可用的电能。目前的能源收获的研发集中在温度变化 不定,环境声音和振动,环境射频。能量采集传感器与RFID的被动,只是共鸣照亮时,产 生电力运行的微控制器,传感器,和/全部或部分或网络接口。从技术上讲,能量采集传感 器不仅不定的来源,但也故意传输功率,说,通过射频和声学渠道。最近麻省理工学院的 “WiTricity技术”的紧密耦合谐振器的示范,使超过几英尺的距离相对高效的无线电力传 输:通过射频通道传输功率故意戏剧性的例子。 传感器检测环境中不断变化的属性和汇报;传感器网络的目标是利用多个位置传感 的好处。传感器是传感器的类型,必须出示微乎其微的权力需要一个可用的错误率在传达的 信息。声,光,大气条件下,振动,和其他环境信号都是公平的游戏所有的sensordesigners 的。 Actuators detect an incoming signal and respond by changing something in the environment. For example, a relay is an actuator that toggles a mechanical switch, and can thus cause a good number of responses to occur such as enabling illumination, heating system, audible alarm, and so on. Actuators such as motors, pneumatics, and hydraulics can move objects and pump fluids. Location technology helps people and machines find things and determines their physical whereabouts. Sensors play a role in dead reckoning, but that approach does not satisfy practical needs for geolocation, resulting in the rise of wireless approaches including GPS (which is often augmented by other signals) and cellular towers. Fixed or orbiting transmitters have known locations. They broadcast timing signals, and receiving devices triangulate by calculating the amount of delay from each transmitter. Radar, lidar, and sonar can detect relative locations of things, depending on their electromagnetic, optical, and acoustic properties. And some things transmit their own radio, light, and/or sound in order to disclose their whereabouts to people and machines. Software comprises a broad domain of development. Development of the IoT will rely on many dimensions of software capabilities including distributed execution, self-describing data structures, and more. No theoretical framework exists to circumscribe the limits of software development, leading to speculation about software that emulates human reasoning and performs tasks on behalf of people. Regardless of the merit of long-awaited artificial intelligence, software will no doubt help future users make sense of complex data sets collected from networks of everyday objects and sensors. 驱动器检测输入信号和响应不断变化的环境中的东西。例如,一个继电器是一个机械开 关执行器,切换,从而可以引起良好的反应发生,如使照明,供热系统,发出声光报警,等 等。如电机,气动,液压作动器,可移动物体和泵油。 定位技术可帮助人与机器找东西,并确定他们的身体下落。传感器在航位推算中发挥了 作用,但这种做法不符合实际需要的地理位置,导致无线方式的兴起,包括全球定位系统(通 常是由其它信号增强)和蜂窝塔。固定或轨道发射机已知位置。他们播出的定时信号,接收 设备,通过计算从每个发射器的延迟量三角。雷达,激光雷达,声纳可以探测事物的相对位 置,取决于其电磁,光学,声学特性。有些事情,发送自己的电台,光,和/或声音,人与 机器,以透露他们的下落。 软件包括一个广阔的发展领域。物联网的发展将依靠软件功能的许多方面,包括分布 式执行,自我描述的数据结构,以及更多。没有理论框架存在外接软件开发的限制,导致投 机软件模拟人类推理和履行人民代表的任务。无论是期待已久的人工智能的优点,软件无疑 将有助于未来的用户感,复杂的数据集从日常生活中的对象和传感器网络收集。 第十一章 Agent-oriented techniques represent an exciting new means of analyzing, designing and building complex software systems. They have the potential to significantly improve current practice in software engineering and to extend the range of applications that can feasibly be tackled. Yet, to date, there have been few serious attempts to cast agent systems as a software engineering paradigm[1]. This paper seeks to rectify this omission. Specifically, it will be argued that: (i) the conceptual apparatus of agent-oriented systems is well-suited to building software solutions for complex systems and (ii) agent-oriented approaches represent a genuine advance over the current state of the art for engineering complex systems. Following on from this view, the major issues raised by adopting an agent-oriented approach to software engineering are highlighted and discussed. 面向Agent技术代表一个复杂的软件系统的分析,设计和建设令人振奋的新手段。他们 有可能显着改善目前的做法,在软件工程和延长能够切实解决的应用范围。然而,迄今为止, 有一些严重的尝试投代理系统作为一个软件工程的典范[1]。本文旨在纠正这一疏忽。具体 来说,它会被认为:(一)面向代理系统的概念设备是非常适合于构建复杂系统的软件解决 方案及(ii)面向代理的方法比目前的艺术状态的真正提前复杂的系统工程。从这个观点上, 采用面向代理的软件工程方法提出的主要问题是突出和讨论。 The Nature of Complex Software Systems , Industrial-strength software is complex in nature: it is typically characterised by a large number of parts that have many interactions. Moreover this complexity is not accidental: it is an innate property of the types of tasks for which software is used. The role of software engineering is therefore to provide structures and techniques that make it easier to handle this complexity. Fortunately, this complexity exhibits a number of important regularities , Complexity frequently takes the form of a hierarchy. That is, the system is composed of inter-related sub-systems, each of which is itself a hierarchy. The precise nature of the organisational relationships varies between sub-systems, although some generic forms (such as client-server, peer, team) can be identified. Organisational relationships are not static: they can, and frequently do, vary over time. , The choice of which components in the system are primitive is relatively arbitrary and is defined very much by the observer’s aims and objectives. 复杂的软件系统的性质 工业强度的软件在本质上是复杂的:它通常是由大量有许多相互作用的部分特征。此外, 这种复杂性并非偶然:它是一个软件用于任务类型的先天属性。因此,提供更容易地处理这 种复杂的结构和技术,软件工程的作用。幸运的是,这种复杂性表现出的一些重要规律 频繁复杂层次的形式。也就是说,该系统是相互关联的子系统组成,每个本身就是一个 层次。组织关系的确切性质不同子系统之间,虽然可以识别一些通用的形式(如客户端 - 服 务器,同行,团队)。组织关系不是静态的:他们可以,而且经常不随时间变化的。 系统中的组件是原始的选择是比较乱,被定义为观察员的宗旨和目标非常。 , Hierarchic systems evolve more quickly than non-hierarchic ones of comparable size. In other words, complex systems will evolve from simple systems much more rapidly if there are stable intermediate forms, than if there are not. , It is possible to distinguish between the interactions among sub-systems and the interactions within sub-systems. The latter are both more frequent (typically at least an order of magnitude more) and more predictable than the former. This gives rise to the view that complex systems are nearly decomposable. Thus, sub-systems can be treated almost as if they are independent of one another, but not quite since there are some interactions between them. Moreover, although many of these interactions can be predicted at design time, some cannot. 分级系统比同等规模的非层次的发展更加迅速。换句话说,复杂的系统将进化,从简单 的系统,更迅速,如果有稳定的中间形式,如果没有。 这是可能的区分分系统和子系统内的相互作用之间的相互作用。后者更频繁(通常至少 一个量级更多的订单),比前更可预见的。这引起了复杂系统的近可分解认为。因此,系统 可以被视为几乎一样,如果他们是彼此独立的,但不相当,因为它们之间存在着一定的相互 作用。此外,虽然许多这些相互作用可以在设计时的预测,有些不能。 The principal mechanisms include [3]: , Decomposition: The most basic technique for tackling any large problem is to divide it into smaller, more manageable chunks each of which can then be dealt with in relative isolation (note the nearly decomposable sub-systems in figure 1). Decomposition helps tackle complexity because it limits the designer’s scope: at any given instant only a portion of the problem needs to be considered. , Abstraction: The process of defining a simplified model of the system that emphasizes some of the details or properties, while suppressing others. Again, this technique works because it limits the designer’s scope of interest at a given time. Attention can be focused on the salient aspects of the problem, at the expense of the less relevant details. 的主要机制包括[3]: 分解为最基本的技术,解决任何大的问题是划分成更小,更易于管理的块每一个都可以 在相对隔离的处理(注意图1中的近可分解子系统)。分解有助于铲球的复杂性,因为它限 制了设计师的范围:在任何给定的瞬间,只有部分问题需要考虑。 抽象:定义了一个系统,它强调的一些细节或属性的简化模型的过程,而抑制其他。再 次,这种技术的工作原理,在一个给定的时间,因为它限制了设计师的兴趣范围。可重点关 注的突出问题方面,在牺牲少有关细节。 , Organisation: The process of identifying and managing the inter-relationships between the various problem solving components (note the sub-system and interaction links of figure 1). The ability to specify and enact organisational relationships helps designers tackle complexity in two ways. , Firstly, by enabling a number of basic components to be grouped together and treated as a higher-level unit of analysis. For example, the individual components of a sub-system can be treated as a single unit by the parent system. Secondly, by providing a means of describing the high-level relationships between various units. For example, a number of components may need to work together in order to provide a particular functionality. 组织的识别和管理的各种问题的解决组件之间的相互关系(注意图1中的子系统和互动 环节)的过程。指定,并制定组织关系的能力,帮助设计师解决两方面的复杂性。 首先,实现了基本元件组合到一起,并作为一个更高级别的分析单位处理。例如,一个 子系统的各个组成部分可以被视为一个单一的单位,由父系统。其次,通过提供描述各单位 之间的高级别关系的一种手段。例如,一个组件的数量可能需要共同努力,以提供特定的功 能。 , There are a number of points about this definition that require further explanation. Agents are: (i) clearly identifiable problem solving entities with well-defined boundaries and interfaces; (ii) situated (embedded) in a particular environment—they receive inputs related to the state of that environment through their sensors and they act on the environment through their effectors; (iii) designed to fulfil a specific role —they have particular objectives to achieve, that can either be explicitly or implicitly represented within the agents; (iv) autonomous—they have control both over their internal state and over their own behaviour; (v) capable of exhibiting flexible (contextdependent) problem solving behaviour —they need to be reactive (able to respond in a timely fashion to changes that occur in their environment in order to satisfy their design objectives) and proactive (able to opportunistically adopt new goals and take the initiative in order to satisfy their design objectives). 有这个定义的点,需要进一步解释。代理是:(i)清楚地识别问题的解决具有明确的界 限和接口的实体;(二)位于(嵌入)在一个特定的环境中,他们收到有关该环境通过其传 感器的状态投入,他们的行为对环境的通过他们的效应;(三)设计,以满足特定的角色, 他们有特定的目标来实现的,可以是明示或暗示的代表在代理商;(四)自治区,他们都超 过其内部状态和对自己有控制行为;(五)能够表现出灵活(contextdependent的)解决问 题的行为,他们需要的是反应(能够在他们的环境中发生的变化,及时回应,以满足他们的 设计目标)和主动(能够机会主义采取新的目标,并采取主动,以满足他们的设计目标)。 When adopting an agent-oriented view of the world, it soon becomes apparent that a single agent is insufficient. Most problems require or involve multiple agents: to represent the decentralized nature of the problem, the multiple loci of control, the multiple perspectives, or the competing interests. Moreover, the agents will need to interact with one another, either to achieve their individual objectives or else to manage the dependencies that ensue from being situated in a common environment. These interactions range from simple semantic interoperation (the ability to exchange comprehensible communications), through traditional client-server type interactions (the ability to request that a particular action is performed), to rich social interactions (the ability to cooperate, coordinate and negotiate about a course of action). Whatever the nature of the social process, however, there are two points that qualitatively differentiate agent interactions from those that occur in other software engineering paradigms. 当采用面向代理的世界,它很快变得明显,一个单一的代理是不够的。大多数问题都需 要或涉及多个代理商代表分散性质的问题,控制的多个位点,多角度,或相互竞争的利益。 此外,代理商将需要彼此互动,可以实现各自的目标或者管理的依赖关系,坐落在一个共同 的环境,随之而来的。这些相互作用的范围从简单的语义互操作(能够交换可理解通信), 以丰富的社会互动(合作,协调和谈判的能力,通过传统的客户 - 服务器类型的相互作用 (能力要求,执行特定的动作)行动过程)。然而,不管是什么性质的社会进程,有两点定 性区别于那些发生在其他软件工程范式剂相互作用。 Firstly, agent-oriented interactions generally occur through a high-level (declarative) agent communication language (typically based on speech act theory). Consequently, interactions are usually conducted at the knowledge level: in terms of which goals should be followed, at what time, and by whom (cf. method invocation or function calls that operate at a purely syntactic level). Secondly, as agents are flexible problem solvers, operating in an environment over which they have only partial control and observability, interactions need to be handled in a similarly flexible manner. Thus, agents need the computational apparatus to make context-dependent decisions about the nature and scope of their interactions and to initiate (and respond to) interactions that were not necessarily foreseen at design time. 首先,面向代理的交互通常发生通过一个高层次的(声明)代理通信语言(通常在言语 行为理论为基础)。因此,相互作用通常在知识的层面进行:在其中的目标,应遵循在什么 时候,由人(参方法调用或函数调用,一个纯粹的语法水平),条件。其次,作为代理商灵 活的解决问题,他们只是局部的控制和可观的环境中运作,互动需要在一个同样灵活的方式 处理。因此,代理商需要的计算设备,使它们之间的相互作用的性质和范围的上下文相关的 决策,并启动(和响应),不一定在设计时所预见的相互作用。 The Case for an Agent-Oriented Approach , Having characterised complex systems and described agent software, we now consider why such agent-oriented techniques are well suited to developing such software systems. This argument has three parts: , show that agent-oriented decompositions are an effective way of partitioning the problem space of a complex system (section 2.3.1); , show that the key abstractions of the agent-oriented mindset are a natural means of modeling complex systems (section 2.3.2); , show that the agent-oriented philosophy for identifying and managing organisational relationships is appropriate for dealing with the dependencies and interactions that exist in a complex system (section 2.3.3). , To make the case for agent-oriented software engineering even more compelling, the final step is to argue that agent-oriented techniques represent a genuine advance over the current state of the art. To this end, the agent-oriented approach will be compared with leading-edge techniques from mainstream software engineering (section 2.3.4). In particular, this involves comparisons with object-oriented analysis and design (system is built out of interacting objects that encapsulate both data and the procedures that operate on that data) and with component-ware (system is built by assembling pre-existing components into some overall structure). 一个面向Agent的方法为例 在复杂系统的特点和描述的代理软件,现在我们考虑为什么这些代理为导向的技术非常 适合开发这样的软件系统。这种说法有三个部分: 表明,面向代理的分解是一个复杂的系统的问题(2.3.1节)空间分区的一个有效途径; 表明,代理为导向的思维定式的关键抽象复杂系统建模(2.3.2节)一个自然的手段; 表明代理人为本的理念识别和管理组织的关系是适当的处理,在一个复杂的系统(2.3.3 节)中存在的依赖关系和相互作用。 为了使面向Agent的软件工程更引人注目的情况下,最后一步是认为代理为导向的技术 代表了真正的进步,在当前的艺术状态。为此,代理为导向的方法,将与领先的技术主流软 件工程(第2.3.4节)。特别是,这涉及到面向对象分析和设计(相互作用的对象封装数据 和操作数据的程序,建立系统)和组件的软件(系统通过预现有的组件装配到建的比较一些 整体结构)。 第十六章 What Is an Embedded System? , Tough question, really. There is no one answer. I asked at least a half dozen industry experts and got as many answers. In fact, it was so hard to pin down a definition that I almost started thinking "embedded system" was just another term for "software." Nevertheless, there's one fact about embedded systems that all the experts do seem to agree on: , An embedded system is any software system that must be designed on a platform different from the platform on which the system is intended to be deployed[1]. 棘手的问题,真的。有没有一个答案。我问了至少半打的行业专家,并得到尽可能多的 答案。事实上,它是如此难以确定的定义,我几乎开始思考“嵌入式系统”是另一个“软件。” 然而,有一个关于嵌入式系统的事实,所有的专家们似乎同意: 嵌入式系统是必须在一个平台上,从不同的平台,在该系统的目的是要部署[1]设计的 任何软件系统。 , What is meant by platform? On the development side, platform typically refers to an operating system capable of hosting software development, such as Windows, Solaris, HP, etc. On the target side, the word platform refers to the devices on which the embedded system will be deployed[2]. , OK then, why the design constraint? Why aren't embedded targets capable of hosting software development? Because these targets are optimized for performance and/or simplicity, they lack the equipment necessary for development (such as keyboards, monitors, networking, etc.). In general, development for the embedded environment is referred to as "cross-platform development."[3] 由平台是什么意思,在开发方面,平台通常是指一个操作系统托管软件开发能力,如在 Windows,Solaris,HP等,在目标端,字平台是指在设备上的嵌入式系统将部署2 。 OK,然后设计约束,为什么呢,为什么没有嵌入的托管软件开发的目标吗,优化的性能 和/或简单,因为这些目标,他们缺乏发展所必需的设备(如键盘,显示器,网络等)。在一 般情况下,为嵌入式环境的发展被称为“跨平台开发。”[3] Embedded System Performance , To reiterate, target platforms, the actual embedded devices and systems themselves, are optimized for performance and/or simplicity. What do we mean by performance? If you think it means the target has to be extremely fast, then you're only partially correct. For most embedded systems, a maximally acceptable process time is rigidly observed, but that time need not be super fast -- just fast enough for the system in question. Consider the airplane: How much time is acceptable between a change in external atmospheric conditions and the appropriate alteration made by the autopilot? Perhaps the reaction need not be lightning quick, but it certainly can't be sluggish. , And how about simplicity? Depending on the responsibility of the embedded system, small, inexpensive, low-power microchips are viable and preferable options to more bulky alternatives[4]. Did you know that there is more computational power in a modern-day automobile than there was in the Apollo 13 moon lander? Can you imagine the cost and size of today's automobiles if their embedded systems were complex and bulky? 重申,目标平台,在实际的嵌入式设备和系统本身,优化性能和/或简单。通过性能是 什么意思,如果你认为这意味着目标是非常快的,那么你只是部分正确。对于大多数嵌入式 系统,最大可以接受的处理时间是严格遵守,但需要时间不超快速 - 系统问题只是速度不 够快。考虑飞机之间在外部大气条件的变化,自动驾驶仪和相应的改动是可以接受的多少时 间,也许反应不一定是闪电快,但它肯定不能是缓慢的。 以及如何简单吗,根据嵌入式系统的责任,体积小,价格低廉,低功耗的芯片是可行和 可取的选项,更笨重的替代品[4]。你知道,有更多的计算能力比在阿波罗13号月球着陆器 在现代汽车吗,你能想象今天的汽车的成本和尺寸,如果他们的嵌入式系统的复杂和笨重 的, Okay, let's review. We now understand that embedded systems: , Must be developed in a cross-development environment; , Implement functions that provide an element of control in an asynchronous world; , Use the smallest amount of code to achieve the greatest necessary speed and degree of predictability possible. 好吧,让我们的审查。我们现在明白,嵌入式系统: 必须在交叉开发环境中开发; 实现的功能,提供了一个控制在异步世界的元素; 用最小的代码量达到必要的速度和程度的可预见性可能最大。 Target Platforms , For the simplest target platforms -- platforms that are inexpensive and consume minimal power -- all functions are considered equally important, so the system has no recognition of priority. Functions are typically written in C and then "burned" into some Read Only Memory on an 8-bit or 16-bit microprocessor. There is no operating system and perhaps 0.5K of Random Access Memory for some minor use. It's information in, information out. Lightning quick. (The bit size just refers to the amount of memory accessed by the processor. All memory is divided into little storage bins with individual addresses. The more bits supported by a processor, the more addresses that can be specified.) 对于最简单的目标平台 - 平台,价格便宜,消耗最小的力量 - 所有的功能被认为是同 样重要的,因此该系统具有不承认优先权。通常是用C写的函数,然后“烧”到一些只读存 储器读取一个8位或16位微处理器。有没有操作系统,也许一些轻微的使用随机存取记忆 体0.5K。这是中,信息的信息。闪电般的速度。 (位大小仅仅是指处理器访问的内存量。 所有内存被划分成单个地址的小储物箱。位处理器的支持,更可以指定地址。) , As the need for features increases and/or as the need to establish priorities arises, it becomes more important to have some sort of decision-making mechanism be part of the embedded system. The most advanced systems actually have a tiny, streamlined operating system running the show, executing on a 32-bit or 64-bit processor. This is called a Real-Time Operating System (RTOS)[5]. , An RTOS runs your PDA. More than one thing may be happening at the same time on this device, and it is the job of the RTOS to direct traffic. But why real-time? Here's what my experts had to say: , In the embedded industry, "real-time" is used to refer to a system that must compute a result, based on certain inputs, in less than a maximally acceptable time -- i.e., it must respond in real time. , The fact is, real-time response is not always necessary in an embedded system. Nevertheless, within the industry, the term real-time has become almost synonymous with embedded system. 需要随着功能的增加和/或需要建立优先次序出现,它成为更重要的是有某种决策机制 是嵌入式系统的一部分。最先进的系统实际上有一个微小的,精简的操作系统上运行的表演, 32位或64位处理器上执行。这就是所谓的实时操作系统(RTOS),[5]。 RTOS的运行您的PDA。超过一件事可能会发生在此设备上的同时,和RTOS的工作是指 挥交通。但是,为什么实时,这里是我的专家们说: 在嵌入式行业中,“实时”是用来指一个系统必须计算结果,根据一定的投入,在小于 最大可接受的时间 - 即,它必须实时响应。 事实是,实时响应是在嵌入式系统中并不总是必要的。然而,行业内的,长期的实时嵌 入式系统几乎成了代名词。 Embedded System Certification , Embedded systems associated with safety and mission-critical applications typically have extremely rigorous certification standards. For example, all international aviation administrations disallow the use of a new embedded system within airplanes until that system has been developed and tested with the techniques and methods defined within a document labeled DO-178B. Critical to this well-defined process is an insistence on exposing and testing code, based upon code coverage up to the level of completeness software developers refer to as MC-DC (Modified Conditions -- Decision Conditions). 安全和关键任务应用的嵌入式系统通常有极其严格的认证标准。例如,所有的国际航空 主管部门禁止使用一个新的嵌入式系统内的飞机,直到该系统已开发和测试,在标有 “DO-178B的文件中定义的技术和方法。此明确定义的流程的关键是坚持揭露和测试代码, 根据代码覆盖了完整的软件开发人员的水平,指的MC-DC(修改条件 - 决策条件)。 So how do you test and certify such critical embedded systems? Your testing toolset must: , Execute its tests directly on the target system. , Support all potential development platforms and development tools. , Accommodate, and not interfere with, the potentially limited memory and process power of the target system. , Enable everything from unit testing (i.e., testing of functions, classes, tasks) to overall system testing. , Provide code coverage metrics up to the rigorous MC-DC standard. 那么,你如何测试和认证等关键嵌入式系统,您的测试工具集必须: 直接在目标系统上执行测试。 支持所有潜在的开发平台和开发工具。 适应,不干扰,潜在的有限的内存和进程目标系统的电源。 一切从单元测试(即,函数,类,任务测试)使整体系统测试。 代码覆盖率度量提供严格的MC-DC标准。 第十九章 In creating computer systems that can identify people and interpret their actions, researchers have come one step closer to building helpful home and work environments. 在创建计算机系统,它可以识别人,并解释他们的行动中,研究人员已经前来帮助的家 庭和工作环境建设的更近了一步。 • Imagine a house that always knows where your kids are and tells you if they are getting into trouble. • Or an office that sees when you are having an important meeting and shields you from interruptions. • Or a car that senses when you are tired and warns you to pull over. • Scientists have long tried to design computer systems that could accomplish such feats. • Despite their efforts, modern machines are still no match for baby-sitters or secretaries. But they could be. 想象一下,一个房子,总是知道您的孩子在哪里,并告诉你,如果他们陷入麻烦。 或者,当你看到有一个重要的会议,并从中断屏蔽你的办公室。 或一辆车,当你累了,并警告你拉过来的感觉。 长期以来,科学家们试图设计的计算机系统,可以完成这样的壮举。 尽管他们的努力,现代化的机器仍然没有保姆或秘书的比赛。但他们可能。 • The problem, in my opinion, is that our current computers are both deaf and blind: they experience the world only by way of a keyboard and a mouse. • Even multimedia machines, those that handle audiovisual signals as well as text, simply transport strings of data. • They do not understand the meaning behind the characters, sounds and pictures they convey. • I believe computers must be able to see and hear what we do before they can prove truly helpful. • What is more, they must be able to recognize who we are and, as much as another person or even a dog would, make sense of what we are thinking. 在我看来,这个问题是,我们目前的电脑都是聋哑人和盲人,他们的经验世界,只能通 过键盘和鼠标的方式。 即使是多媒体机,那些处理音像信号以及文本,只需传输数据的字符串。 他们不明白背后的人物,他们传达的声音和图片的含义。 我相信计算机必须能够看到和听到的,我们做什么,才可以证明真正的帮助。 更重要的是,他们必须能够认识到我们是谁,只要另一个人,甚至狗多,我们正在想什 么感。 • To that end, my group at the Media Laboratory at the Massachusetts Institute of Technology has recently developed a family of computer systems for recognizing faces, expressions and gestures. • The technology has enabled us to build environments that behave somewhat like the house, office and car described above. • These areas, which we call smart rooms, are furnished with cameras and microphones that relay their recordings to a nearby network of computers. • The computers assess what people in the smart room are saying and doing. 为此,我在麻省理工学院媒体实验室的小组最近开发出一种计算机系统认识的面孔,表 情和手势的家庭。 该技术使我们能够建立环境行为有点像上面介绍的房子,办公室和汽车。 这些领域,我们称之为智能的客房,配有摄像头和麦克风,转达他们的录音,到附近的 电脑网络。 计算机评估在智能房的人说和做。 • Thanks to this connection, visitors can use their actions, voices and expressions---instead of keyboards, sensors or goggles---to control computer programs, browse multimedia information or venture into realms of virtual reality. • The key idea is that because the smart room knows something about the people in it, it can react intelligently to them. • Working together with Pattie Maes and me, graduate students Trevor Darrell and Bruce M. Blumberg constructed the first smart room in 1991 at M.I.T. • The initiative quickly grew into a collaborative experiment and now involves five such rooms, all linked by telephone lines, around the world: three in Boston, one in Japan and one in the U.K. (Installations are also planned for Paris, New York City and Dallas.) • Each room contains several machines, none more powerful than a personal computer. • These units tackle different problems. • For instance, if a smart room must analyze images, sounds and gestures, we equip it with three computers, one for each type of interpretation. • If greater capabilities are needed, we add more machines. • Although the modules take on different tasks, they all rely on the same statistical method, known as maximum likelihood analysis: the computers compare incoming information with models they have stored in memory. • They calculate the chance that each stored model describes the observed input and ultimately pick the closest match. • By making such comparisons, our smart-room machines can answer a range of questions about their users, including who they are and sometimes even what they want. 由于这方面,参观者可以用自己的行动,声音和表情---而不是键盘,传感器或护目镜 ---控制计算机程序,浏览多媒体信息或进入虚拟现实领域的企业。 关键的思想是智能的房间,因为知道有关它的人的东西,它可以反应智能他们。 •馅饼梅斯和我来说,研究生工作特雷弗达雷尔和布鲁斯米的布隆伯格修建于1991年在 麻省理工学院的智能房 该倡议迅速成长为一个协作的实验,现在涉及到等五室,所有由电话线连接,在世界各 地,在波士顿,一个在日本和英国(装置也为巴黎,纽约市和计划达拉斯。) 每个房间里有几台机器,没有超过个人电脑的强大。 这些单位解决不同的问题。 例如,如果一个聪明的房间必须分析图像,声音和手势,我们装备三台电脑,为每个类 型的解释之一。 如果需要更大的能力,我们添加更多的机器。 •虽然采取不同的任务模块,它们都依赖于相同的统计方法,被称为最大似然分析:电 脑比较传入的信息,他们已经存储在内存中的模型。 他们计算每个存储模型描述所观察到的输入,并最终挑选最接近的机会。 •通过这种比较,我们的智能房的机器可以回答问题,了解他们的用户范围,包括他们 是谁,有时甚至是他们想要的东西。 第二十章 Computer vision is the branch of artificial intelligence that focuses on providing computers with the functions typical of human vision. To date, computer vision has produced important applications in fields such as industrial automation, robotics, biomedicine, and satellite observation of Earth. In the field of industrial automation alone, its applications include guidance for robots to correctly pick up and place manufactured parts, nondestructive quality and integrity inspection, and on-line measurements. Until a few years ago, chronic problems affected computer-vision systems and prevented their widespread adoption. 计算机视觉是人工智能的一个分支,着重提供典型的人类视觉功能的计算机。迄今为止, 计算机视觉,产生了重要的应用领域,如工业自动化,机器人技术,生物医药,卫星观测地 球。仅工业自动化领域,其应用包括机器人正确地拾起和放置零部件制造,无损的质量和完 整性检查,并上线测量的指导。直到几年前,长期存在的问题影响了计算机视觉系统,并阻 止其广泛采用。 , Since its start, computer vision has appeared as a computationally intensive and almost intractable field because its algorithms require a minimum of hundreds of MIPS (millions of instructions per second) to be executed in acceptable real time. Even the input–output of high-resolution images at video rate was traditionally a bottleneck for common computing platforms such as personal computers and workstations. To solve these problems, the research community has produced an impressive number of dedicated computer- vision systems. One such famous system was the Massively Parallel Processor (MPP), designed at the Goddard Space Flight Center in 1983 and operated there until 1991. The MPP used an array of 16,384 single-bit processors and was capable at peak performance of 250 million floating-point operations/s—an impressive feat at the time. 自其启动以来,出现了计算机视觉为计算密集型和几乎棘手的领域,因为它的算法需要 至少数以百计的MIPS(每秒百万条指令),在可接受的实时执行。即使是高分辨率图像输入 输出视频率是传统的通用计算平台,如个人计算机和工作站的一个瓶颈。为了解决这些问题, 研究社会生产的专用计算机视觉系统,令人印象深刻的数字。这样一个著名的系统是大规模 并行处理器(MPP),于1983年在戈达德太空飞行中心的设计和经营直到1991年。 MPP的 使用16,384单位处理器阵列,并能够在2.5亿次浮点运算/ S-令人印象深刻的壮举时的峰 值性能。 Dedicated computers such as the MPP have always received a cold reception from industry because they were expensive, cumbersome, and difficult to program. In recent years, however, increased performance at the system level—faster microprocessors, faster and larger memories, and faster and wider buses—has made computer vision affordable on a wide scale. Fast microprocessors and digital-signal processors are now available as off-the-shelf solutions, and some of them can execute calculations at rates of thousands of MIPS. The Texas Instruments C6414 processor, for example, runs at 600 MHz and can achieve a peak performance of 4,800 MIPS. 如MPP的专用电脑一直收到从行业的冷遇,因为它们价格昂贵,手续繁琐,难以方案。 然而,近年来,提高系统的性能水平更快的微处理器,更快,更大的存储器,更快和更广泛 的巴士,已取得了计算机视觉上的大规模的经济实惠。快速的微处理器和数字信号处理器是 目前可用的现成的解决方案,其中一些可以执行数以千计的MIPS率计算。例如,德州仪器 C6414处理器,运行在600 MHz和可以达到4800 MIPS的最高性能。 , Highspeed serial buses such as the IEEE 1394 and USB 2.0 are capable of transferring hundreds of megabits per second, a rate that greatly exceeds the requirements of any common high-resolution video camera. These buses are already integrated into the most recent personal computer chipsets or are available as inexpensive daughterboards. Moreover, video cameras have gone almost completely to digital, and they come in several price ranges and types. Consumer camcorders are based on standards such as the Digital Video (DV), which provides videos with 720 × 480 pixels/frame at a rate of 30 frames/s. Even Webcams can now provide images of satisfactory quality at prices starting as low as $25. 如IEEE 1394和USB2.0的高速串行总线能够传输数百兆位每秒的速度大大超过任何常 见的高分辨率摄像机的要求。这些公交车都已经集成到最新的个人电脑芯片或作为廉价的子 板。此外,摄像头了,几乎完全数字,他们在几个价格的范围和类型。消费者摄录一体机的 基础上,如数字视频(DV),提供了720×480像素/帧,30帧/秒的速率视频标准。甚至摄 像头,现在可以提供低至25美元的价格,质量满意的图像。 , The availability of affordable hardware and software has opened the way for new, pervasive applications of computer vision. These applications have one factor in common. They tend to be human-centered; that is, either humans are the targets of the vision system or they wander about wearing small cameras, or sometimes both. Vision systems have become the central sensor in applications such as , human-computer interfaces (HCIs), the links between computers and their users , augmented perception, tools that increase normal perception capabilities of humans , automatic media interpretation, which provides an understanding of the content of modern digital media, such as videos and movies, without the need for human intervention or annotation , video surveillance and biometrics 负担得起的硬件和软件的可用性,开辟了新的普遍应用,计算机视觉的方式。这些应用 都有一个共同的因素。他们往往会以人为本,也就是说,无论是人类的视觉系统的目标,或 他们徜徉穿着小相机,或有时两个。中央传感器的应用,如视觉系统已成为 人机接口(HCIS),计算机与用户之间的联系 增强感知,增加正常的人类感知能力的工具 自动媒体解释,它提供了了解现代数字媒体的内容,如视频和电影,而不需要人为干预 或批注, 视频监控和生物识别技术 , Human-computer interfaces , The basic idea behind the use of computer vision in HCIs is that in several applications, computers can be instructed more naturally by human gestures than by the use of a keyboard or mouse. In one interesting application, computer scientist James L. Crowley of the National Polytechnical Institute of Grenoble in France and his colleagues used human eye movements to scroll a computer screen up and down. A camera located on top of the screen tracked the eye movements. The French researchers reported that a trained operator could complete a given task 32% faster by using his eyes rather than a keyboard or mouse to direct screen scrolling. In general, using cameras to sense human gestures is much easier than making users wear cumbersome peripherals such as digital gloves. 人机界面 HCIS利用计算机视觉背后的基本想法是,在一些应用中,电脑可以指示人类手势更自 然比使用键盘或鼠标。在一个有趣的应用,计算机科学家詹姆斯?L?克劳利的民族工业在 法国格勒诺布尔研究所和他的同事用人类眼球运动和向下滚动的电脑屏幕。位于屏幕上方的 摄像机跟踪眼球的运动。法国研究人员报告,训练有素的操作员可以完成一个给定的任务, 他的眼睛,而不是使用键盘或鼠标直接屏幕滚动速度提高了32,。在一般情况下,使用相 机感应到人类的手势是比使用户佩戴繁琐的外设,如数字手套容易得多。 , Another interesting example of an HCI application can be downloaded here for personal testing, provided a Webcam is plugged into your personal computer. This application—called Nouse, for nose as a mouse—tracks the movements of your nose, and was developed by Dmitry Gorodnichy. You can play NosePong, a nose-driven version of the Pong video game (Figure 2, left), or test your ability to paint with your nose or to write with your nose. Although this application is slanted toward fun, it is a convincing demonstration of the potential uses of cameras as natural interfaces. In industry, for example, an operator might quickly stop a conveyor belt with a specific gesture detected by a camera without needing to physically push a button, pull a lever, or carry a remote control. 人机交互应用的另一个有趣的例子,在这里可以下载个人测试,提供了一个摄像头插入 到您的个人电脑。本应用所谓的鼻鼻标,作为一个鼠标跟踪你的鼻子的动作,由梅德 Gorodnichy开发。你可以玩NosePong,鼻傍视频游戏驱动版本(图2左),或测试你的能力 与你的鼻子画或写你的鼻子。虽然这个应用正朝着有趣的倾斜,这是一个相机的自然界面的 潜在用途的有说服力的示范。在工业领域,例如,运营商可能会很快停止输送带用相机检测 到一个特定的手势,而无需物理按下一个按钮,拉杠杆,或进行远程控制。 Cameras could also become powerful peripherals for the so-called intelligent home. A camera located in your living room would perform several tasks, starting with sensing a human presence and then turning the lights on and the heat up. Indeed, cameras could replace the many hard-to-find remote controls around today’s homes, provide environmental surveillance, and turn the TV off when you fall asleep in your favourite armchair. 相机也可以成为所谓的智能家居功能强大的外设。在你的客厅位于相机会执行几项任 务,感应人的存在开始,然后转向灯和热。事实上,相机可以取代今天的家园周围的许多很 难找到的远程控制,提供环境监测,并关掉电视当你跌倒在您最喜爱的扶手椅上睡着了。 第二十四章 : MEMS has been identified as one of the most promising technologies for the 21st Century and has the potential to revolutionize both industrial and consumer products by combining silicon-based microelectronics with micromachining technology. Its techniques and microsystem-based devices have the potential to dramatically affect of all of our lives and the way we live. : This report presents a general introduction to the field of MEMS, with emphasis on its commercial applications and device fabrication methods. It also describes the range of MEMS sensors and actuators, the phenomena that can be sensed or acted upon with MEMS devices, and outlines the major challenges facing the industry. 微机电系统已被确定为21世纪最有前途的技术之一,并有可能彻底改变以硅为基础的 微电子与微机械加工技术相结合,工业和消费产品。它的技术和微系统的设备有可能极大地 影响我们的生活和我们的生活方式。 该报告提出了总体介绍,MEMS领域,重点放在其商业应用程序和设备的制造方法。它 还介绍了MEMS传感器和执行器,可以感觉到或MEMS器件行事的现象,并概述了该行业面临 的主要挑战。 : What is MEMS? : Micro-electromechanical systems (MEMS) is a process technology used to create tiny integrated devices or systems that combine mechanical and electrical components. They are fabricated using integrated circuit (IC) batch processing techniques and can range in size from a few micrometers to millimetres. These devices (or systems) have the ability to sense, control and actuate on the micro scale, and generate effects on the macro scale. : MEMS, an acronym that originated in the United States, is also referred to as Microsystems Technology (MST) in Europe and Micromachines in Japan. Regardless of terminology, the uniting factor of a MEMS device is in the way it is made. While the device electronics are fabricated using ‘computer chip’ IC technology, the micromechanical components are fabricated by sophisticated manipulations of silicon and other substrates using micromachining processes. Processes such as bulk and surface micromachining, as well as high-aspect-ratio micromachining (HARM) selectively remove parts of the silicon or add additional structural layers to form the mechanical and electromechanical components. While integrated circuits are designed to exploit the electrical properties of silicon, MEMS takes advantage of either silicon’s mechanical properties or both its electrical and mechanical properties. 什么是MEMS, 微机电系统(MEMS)是一种用于创建微小的集成器件或系统,结合机械和电子部件的工 艺技术。他们都采用集成电路(IC)的批量加工技术,可以从几微米到几毫米大小的范围。 这些设备(或系统)有能力感,控制和微观尺度上的驱动,并产生宏观尺度上的影响。 微机电系统的缩写,起源于美国,也称为微系统技术(MST)在欧洲和日本微型机械。 无论术语,MEMS器件的团结的因素是在它的方式。而电子装置制造,使用的电脑芯片IC技 术,微机械元件制造硅和复杂的操作使用微细加工工艺等基材。如体积和表面微加工技术, 以及高宽比微加工(HARM)的过程,有选择性地删除部分硅或添加额外的结构层,形成了机 械和机电元件。集成电路的设计,利用硅的电气性能,MEMS的需要,无论是硅的机械性能, 其电气和机械性能的优势。 MEMS has several distinct advantages as a manufacturing technology. In the first place, the interdisciplinary nature of MEMS technology and its micromachining techniques, as well as its diversity of applications has resulted in an unprecedented range of devices and synergies across previously unrelated fields (for example biology and microelectronics). Secondly, MEMS with its batch fabrication techniques enables components and devices to be manufactured with increased performance and reliability, combined with the obvious advantages of reduced physical size, volume, weight and cost. Thirdly, MEMS provides the basis for the manufacture of products that cannot be made by other methods. These factors make MEMS potentially a far more pervasive technology than integrated circuit microchips. However, there are many challenges and technological obstacles associated with miniaturization that need to be addressed and overcome before MEMS can realize its overwhelming potential. 微机电系统有几个明显的优势,作为制造技术。 MEMS技术及其微细加工技术,以及其 应用的多样性的跨学科性质摆在首位,已造成前所未有的跨设备和以前不相关的领域的协同 作用(例如生物学和微电子)的范围。其次,其批量制造技术的MEMS组件和设备制造与提 高性能和可靠性,加上减少的物理尺寸,体积,重量和成本优势明显。第三,MEMS不能用 其他方法制成的产品制造提供了基础。这些因素使MEMS的可能比集成电路芯片的技术更为 普遍。不过,也有许多挑战和小型化相关的技术障碍,需要加以解决和克服之前MEMS能够 实现它的巨大潜力。 第三章 Graphics Processing Units (GPUs), which commonly accompany standard Central Processing Units (CPUs) in consumer PCs, are special purpose processors designed to effciently perform the calculations necessary to generate visual output from program data.Video games have particularly high rendering demands, and this market has driven the development of GPUs which, in comparison to CPUs, offer extremely high performance for the monetary cost. Naturally, interest has been generated as to whether the processing power which GPUs offer can be harnessed for more general purpose calculations (see e.g. [1]). In particular, there is potential to use GPUs to boost the performance of the types of simulations commonly done on traditional HPC systems such as HPCx. There are challenges to be overcome, however, to realise this potential. The demands placed on GPUs from their native applications are, however, usually quite unique, and as such the GPU architecture is quite different from that of the CPU.Graphics processing is inherently extremely parallel so can be highly threaded and performed on the large numbers (typically hundreds) of processing cores found in the GPU chip. The GPU memory system is quite different to the standard CPU equivalent system.Furthermore, the GPU architecture re,ects the fact that graphics processing typically does not require the same level of accuracy and precision as scienti,c simulation. Specialised software development is currently required to enable applications to efficiently utilise the GPU architecture. This report ,rst gives a discussion on scienti,c computing on GPUs. Then, we describe the porting of an HPC benchmark application to the NVIDIA TESLA GPU architecture, and give performance results comparing to use of a standard CPU.图形处理单元(GPU),其中常见的陪在消费者PC标准的中央处理单元(CPU),有效率的特 殊目的而设计的处理器 ciently执行必要的计算,产生程序数据的可视化输出。 视频游戏有特别高的渲染需求,这个市场已带动了 GPU的发展,在比较的CPU,提供了极高的性能 货币成本。 当然,利益的处理能力是否已经产生 GPU的要约可以利用更多的通用计算(见[1])。在 尤其是有潜力使用GPU来提升传统的高性能计算系统,如HPCx常用做模拟类型的性能。 有挑战 要克服,但是,要实现这一潜力。 放置在GPU上的要求,从本地应用程序,然而,通常 相当独特的,因此GPU架构是相当不同的CPU。 图形处理本身极为并行可高度线程执行在GPU处理核心的大量发现(通常是数百个) 芯片。 GPU内存系统是完全不同的标准CPU相当于系统。 此外,GPU架构,反映了一个事实,一般的图形处理 不需要科学模拟的准确性和精度相同的水平。目前需要专门的软件开发,使应用程序能 够有效地 利用GPU架构。 这份报告首次给出了在GPU上的科学计算的讨论。然后,我们 描述的NVIDIA Tesla GPU HPC基准测试应用程序的移植 架构,并给出性能测试结果相比,使用一个标准的CPU。2 Background 2 Background 2.1 GPUs The key difference between GPUs and CPUs is that while a modern CPU contains a few high-functionality cores, GPUs typically contain 100 or more basic cores. GPUs also boast a larger memory bus width than CPUs which results in faster memory access. The GPU clock frequency is typically lower than that of a CPU, but this gap has been closing over the last few years. Applications such as rendering are highly parallel in nature, and can keep the cores busy, resulting in a signi,cant performance improvement over use of a standard CPU.For applications less susceptible to such high levels of parallelisation, the extent to which the available performance can be harnessed will depend on the nature of the application and the investment put into software development. 2.1.1 Architecture This section introduces the architectural design of GPUs. NVIDIA’s products are focussed on here but offerings from other GPU manufacturers, such as ATI, are similar.Figure 1 illustrates the layout of a GPU. It can be seen that there are many processing cores (processors) to perform computation, each grouped into multiprocessors. There are 1Figure 1: Architectural layout of NVIDIA GPU chip and memory. Reproduced with permission from [2].several levels of memory which differ in terms of access speed and scope. The Registers have processor scope; the Shared Memory, Constant Cache and Texture Cache have multiprocessor scope and the Device (or Global) memory can be accessed by all cores on a chip. Note that the GPU memory address space is separate from that for the CPU, and copying of data between the devices must be managed in software. Typically, the CPU will run the program skeleton, and o,oad one or more computationally demanding code sections to the GPU. Thus, the GPU effectively accelerates the application. The CPU is referred to as the Host and the GPU as the Device. Functions that run on the Device are called kernels. On the GPU, operations are performed by threads that are grouped into blocks, which are in turn arranged on a grid. Each block is executed by a single processor, however if there are enough resources available, several blocks can be active at the same time on a processor. The processor will time-slice the blocks to improve performance, one block performing calculations while another is waiting for a memory read, for example. Some of the memory available to the GPU exhibits considerably latency, however by using this method of time-slicing, this latency can be hidden for applications that are suitable. A group of 32 threads is called a warp, and 16 threads a half-warp. GPUs achieve best performance when half-warps of threads perform the same operation. This is because in this situation, the threads can be executed in parallel. Conditionals can mean that threads do not perform the same operations and so they must be serialised. Such threads are said to be divergent. This also applies for Global Memory accesses: if the threads of a half-warp access Global Memory together and obey certain rules to qualify as being coalesced, then they access the memory in parallel and it will only take the time of a single access for all threads of the half-warp to access the memory. Global Memory is located in the graphics card’s GDDR3 memory. This can be accessed by all threads, although it is usually slower than on-chip memory. Memory access is signi,cantly improved if memory accesses are coalesced (see 5.1.2.5 of the Programming Guide [2]) as this allows all the threads of a half-warp to access the memorysimultaneously. Shared Memory can only be accessed by threads in the same block. Because it is onchip, the Shared Memory space is much faster than the local and Global Memory spaces.Approximately 16KB of shared memory are available on each MP (multi-processor),however to permit each MP to have several blocks active at a time (which improves performance) it is advisable to use as little Shared Memory as possible per block. A little bit less than 16KB is effectively available due to storage of internal variables. Shared Memory consists of 16 memory banks. When Shared Memory is allocated, each consecutive 32bit word is placed on a different memory bank. To achieve maximum memory performance, bank con,icts must be avoided (two threads trying to access the same bank at the same time). In the case of a bank con,ict, the con,icting memory accesses are serialised, otherwise memory access by each half-warp is done in parallel.Constant Memory is read-only memory that is cached. It is located in Global Memory, however there is a cache located on each Multi-processor. If the requested memory is in the cache, then access is as fast as Shared Memory, however if it is not then the access will be the same as a Global Memory access. Texture Memory is read-only memory that is cached and is optimized for 2D spatial locality. This means that accessing [a][b] and [a+1][b], say, will probably get better speed than if [a][b] and [a+54][b] were accessed instead. The Texture Cache is 16KB per processor. This is a different 16KB to the Shared Memory, so using the Texture Cache does not reduce available Shared Memory. Register memory exists and access speed is similar to Shared Memory. Each thread in a block has its own independent version of register variables declared. Variables that are too large will be placed in Local Memory which is located in Global Memory. The Local Memory space is not cached, so accesses to it are as expensive as normal accesses to Global Memory. 2.2 CUDA: Compute Uni,ed Device Architecture CUDA is a programming language developed by NVIDIA to facilitate writing programs that run on CUDA-enabled GPUs. It is an extension of C and is compiled using the nvcc compiler. The most commonly used extensions are cudaMalloc* to allocate memory on the device, cudaMemcpy* to copy data between the host and device and between different locations on the device, kernel name<<>>(parameters) to launch a kernel, threadIdx.x, blockIdx.x, blockDim.x, and gridDim.x to identify the thread, block, block dimension, and grid dimension in the x direction. CUDA addressed a number of issues that affected developing programs for GPUs, which previously required much specialist knowledge. CUDA is quite simple, so it will not take much time for a programmer already familiar with C to begin using it. CUDA also possesses a number of other bene,ts over previous methods of GPU programming. One of these is that it permits threads to access any location in the GPU memory and to read and write to as many memory locations as necessary. These were previously quite limiting constraints, and so easing them represents a signi,cant advantage for CUDA. Another major bene,t is permitting access to Shared Memory, which was previously not possible. To make adoption of CUDA as easy as possible, NVIDIA has created CUDA U [3] which contains a well-written tutorial with exercises as well as links to course notes and videos of CUDA courses taught at the University of Illinois. A Reference Manual and Programming Guide are also available [4]. The CUDA SDK [5] contains many example codes that can be used to test the installation of a GPU and, as the source codes are provided, demonstrate CUDA programming techniques. One of the provided codes is a template, providing the basic structure on which programs can be based. One of the main features of CUDA is the provision of a Linear Algebra library (CUBLAS) and an FFT library (CUFFT). These greatly ease the implementation of many scienti,c codes on a GPU. 2.3 Review of GPU successes In this section, some recent work involving using GPUs for scienti,c computing is highlighted. • The Theoretical and Computational Biophysics group at the University of Illinois at Urbana-Champaign has used GPUs to achieve accelerations of between 20 and 100 times for molecular modelling applications. Monte Carlo application and a 50 times speed-up for a 3D Laplace Solver. [7] The Laplace Solver was implemented on the GPU using only Global and Shared Memory. It uses a Jacobi iteration of a Laplace discretisation on a uniform 3D grid.The LIBOR Monte Carlo code used was quite similar to the original CPU code. Ituses Global and Constant Memory. • Many other UK researchers are also experimenting with GPUs. [8]NVIDIA has a showcase of applications reported to them. GPGPU.org also maintains a list of researchers using GPUs. [10] •RapidMind achieved a 2.4 times speed-up for BLAS SGEMM, 2.7 times for FFT, and 32.2 times for Black-Sholes. 2.4 GPU Disadvantages and Alternative Acceleration Technologies In this section, some disadvantages of the GPU architecture are discussed, and some alternative acceleration technologies are brie,y described. The key limitation of GPUs is the requirement for a high level of parallelism to be inherent to the application to enable exploitation of the many cores. Furthermore, graphics processing typically does not require the same level of accuracy and precision as scienti,c simulation, and this is re,ected in the fact that typically GPUs lack both error correction functionality and double precision computational functionality tends to be not available or incorporates a performance hit. This is expected to improve with future GPU architectures. Another common criticism of GPUs is the large power consumption. The NVIDIA Tesla C870 uses up to 170W peak, and 120W typical. The amount of heat produced would make it di,cult to cluster large numbers of GPUs together. GPUs also place greater constraints on programmers than CPUs. To avoid signi,cant performance degradation it is necessary to avoid conditionals inside kernels. Avoiding non-coalesced Global Memory accesses is very di,cult for many applications, which can also severely degrade performance. The lack of any inter-block communication functionality means that it is not possible for threads in a block to determine when the threads in another block have completed their calculation. This means that if results of computation from other blocks are required then the only solution is for the kernel to exit and another launch, guaranteeing that all of the blocks have completed. Finally, GPUs suffer from large latency in CPU-GPU communication. This bottleneck can mean that unless the amount of processing that is done on the GPU is great enough, it may be faster to simply perform calculations on the CPU. There are other alternative acceleration technologies available, some of which are brie,y described below. Clearspeed One alternative to GPUs are processors designed especially for HPC applications, such as those offered by Clearspeed. These products are usually quite similar to GPUs, with a few modi,cations that usually make them more suitable for HPC applications. One of these differences is that all internal and external memory contains ECC(Error Correction Code) to detect and correct ‘soft errors’. ‘Soft errors’ are random one-bit errors that are caused by external factors such as cosmic rays. In the graphics market such errors are tolerable, and so GPUs do not contain ECC, however for HPC applications it is often desirable or required. Clearspeed products also have more coresthan GPUs, but they run at a slower clock speed to reduce heat loss. Double precision is also available. Specialised products such as Clearspeed processors have a much smaller market thant hat of GPUs. This gives GPUs a number of advantages, such as economies of scale, Gr Intel Larrabee Another alternative that is likely to generate much interest when it is released in 2009-2010 is Intel’s Larrabee processor. This will be a many-core x86 processor with vector capability. It has the signi,cant advantage over GPUs of making inter-processor communication possible. It should also solve a number of other problems that affect GPUs, such as the latency of CPU-GPU communication. It will initially be aimed at the graphics market, although specialised HPC products based on it are possible in the future. It is likely that it will also contain ECC to minimise ‘soft errors’.AMD is also developing a similar product, currently named ‘AMD Fusion’, however few details have been released yet. Cell Processor A Cell chip contains one Power Processor Element (PPE) and several Synergistic Processing Elements (SPEs). The PPE acts mainly to control the SPEs, which do most of the calculations. Cell processors are quite similar to GPUs. For some applications GPUs outperform Cell Processors, while for others the opposite is true. FPGAs Field Programmable Gate Arrays (FPGAs) are programmable semiconductor devices that are based around a matrix of con,gurable logic blocks connected via programmable interconnects. As opposed to normal microprocessors, where the design of the device is ,xed by the manufacturer, FPGAs can be programmed to compute the exact algorithm required by a given application. This makes them very powerful and versatile. The main disadvantages are that they are usually quite di,cult to program,and they are also slow if high-precision is required. For certain tasks they are popular,however. Several time-consuming algorithms in Astronomy where only 4 bit precision is necessary are very suitable for FPGAs, for example. 2背景 2.1的GPU GPU和CPU之间的主要区别是,虽然现代CPU包含了一些高功能的核心,图形芯片通常包含 100个或更多的基本核心。图形芯片还拥有更大的内存比CPU的总线宽度,导致更快的内存 存取。 GPU时钟频率通常比CPU的低,但这种差距已经在过去几年关闭。 如渲染的应用程序是高度平行的性质,并能保持核心的繁忙,导致不易这么高的水平,并行 化标准CPU.For应用使用较显着的性能改进,可用的性能,可以在何种程度上利用将取决于 投入软件开发,应用和投资的性质。 2.1.1建筑 本节介绍了建筑设计的GPU。 NVIDIA的产品都集中在这里,但产品是从其他GPU厂商如ATI, similar.Figure 1说明了一个GPU的布局。由此可以看出,有许多处理核心(处理器)进 行计算,每个分组到多处理机。有1 1Figure:NVIDIA GPU芯片和存储器的建筑布局。转载 [2]的权限。几个级别的内存存取速度和范围方面的不同。寄存器的处理器范围;共享内存, 常量缓存和纹理缓存,多范围和内存可以在一个芯片上所有内核访问的设备(或全球)。请 注意GPU内存地址空间,从分开的CPU,必须在软件管理和设备之间的数据复制。通常情况 下,CPU将运行程序骨架,卸载一个或多个计算要求到GPU的代码段。因此,有效的GPU加 速应用程序。被称为CPU的主机和设备的GPU。在设备上运行的功能,被称为内核。 在GPU上,操作组合成块,这在网格排列依次是线程执行。每个块由一个单一的处理器执行, 但如果有足够的可用资源,几个块可以同时在一个处理器上。处理器时间片块,以提高性能, 一个块进行计算,而另一个正在等待内存读取,例如。可用内存的GPU的一些证物,但是通 过这个时间切片的方法,大大延迟,这个延迟可以隐藏适合的应用。 A组32个线程被称为经线,半warp和16个线程。 GPU的线程的一半,扭曲时,执行相同的操作,实现最佳的性能。这是因为在这种情况下,线程可以并行执行。条件可以的意思,线程不执行相同的操作,因此,它们必须被序列化。说,这些线程是不同的。这也适用于全球记忆体存取:如果半warp访问全局内存共同遵守一定的规则,有资格被接合的线程,然后他们在并行访问内存和它只会为所有的单一访问时间半warp的线程访问内存。 全局内存位于显卡的GDDR3显存。这可能是 所有线程访问,虽然它通常比片上存储器慢。记忆 访问显着改善,如果被合并内存访问(见5.1.2.5编程指南[2]),因为这可以让一个半warp的所有线程访问的memorysimultaneously。 共享内存只能由同一个块中的线程访问。因为它是片上,共享的内存空间是速度远远比本地及全球的记忆spaces.Approximately共享内存16KB每个MP(多处理器),但允许每个MP有几个街区一次活动(从而提高性能)最好是用尽可能少的共享尽可能每块记忆。超过16KB少一点点,实际上是由于内部变量的存储。 共享内存由16个记忆库。共享内存分配时,每个 连续32位字被放在不同的内存银行。为了达到最大 内存性能,银行必须避免冲突(两个线程试图同时访问同一银行)。在银行冲突的情况下,冲突的内存访问被序列化,否则每个半warp的内存访问parallel.Constant记忆的做只读存储器缓存。它位于在全局内存,但有是位于每个多处理器缓存。如果请求的内存高速缓存中,然后访问共享内存快,但是如果它不是那么的访问将是一个全局内存访问相同。 纹理存储器是只读存储器,缓存和二维空间进行了优化 地方。这意味着,是访问[A] [B]和[+1] [B],发言权,将可能会得到更好的速度比[A] [B]和[54] [B],而不是进行访问。纹理缓存是16KB,每个处理器。这是一个不同的16KB共享内存,所以使用的纹理缓存,不减少可用的共享内存。 存在注册的内存和共享内存访问速度是类似。每个线程 在一个块已宣布它自己的寄存器变量的独立版本。有太大的变数,将放置在本地内存中,这是在位于全局存储器。本地内存空间是没有缓存,所以它的访问是正常访问全局内存昂贵。 2.2的CUDA统一计算设备架构 CUDA是由NVIDIA公司开发的一种编程语言写CUDA技术的GPU上运行的程序,方便。这是一个C扩展和使用nvcc编译器编译。最常用的扩展cudaMalloc *设备上的内存分配,cudaMemcpy *复制的主机和设备之间的数据和设备上的不同地点之间, 内核名称<<<网格尺寸,块尺寸>>>(参数) 启动一个内核,threadIdx.x,blockIdx.x,blockDim.x,gridDim.x标识线,块,块尺寸,网格在x方向上的尺寸。 的GPU的CUDA解决一些问题,影响发展方案, 以前需要太多的专业知识。 CUDA是很简单的,因此它不会占用太多的时间,已经熟悉C开始使用它的程序员。 CUDA技术还拥有数量超过以往的GPU编程方法的其他好处。其中之一是它允许线程访问GPU内存中的任何位置,读取和写入到尽可能多的内存位置。这些都是以前相当限制的限制,并因此减轻他们代表CUDA显着的优势,。另一个主要的好处是允许访问共享内存,这在以前是不可能的。 使采用尽可能简单的CUDA,NVIDIA已创建的CUDAü[3] 其中包含与演习的书面教程以及在伊利诺伊大学任教的CUDA课程的课程笔记和视频的链接。也可参考手册和编程指南[4]。 CUDA的SDK [5],包含了许多例子,可以用来测试GPU的安装和提供的源代码,演示CUDA 编程技术代码。所提供的代码是一个模板,哪些程序可以根据提供的基本结构。 CUDA的主要特点之一是提供一个线性代数库 (CUBLAS)和FFT库(CUFFT)。这些极大地缓解执行 在GPU上的许多科学规范。 2.3 GPU的成就回顾 在本节中强调,最近的一些工作,涉及科学计算使用的GPU。 •在伊利诺伊大学厄巴纳 - 香槟分校的理论和计算生物物理组使用GPU来实现分子建模应用之间的20和100倍的加速度。 蒙特卡罗应用程序和50倍的速度为三维拉普拉斯求解的了。 [7] 拉普拉斯求解,实现在GPU上使用全球唯一和共享 内存。它使用一个统一的三维拉普拉斯离散化的Jacobi迭代 grid.The伦敦银行同业拆息蒙特卡洛代码使用的是原来的CPU代码非常相似。 Ituses全局和常量内存。 •许多其他英国的研究人员也在尝试与GPU。 [8] NVIDIA已经向他们报告的应用程序展示。 GPGPU.org也保持了使用GPU的研究人员名单。 [10] •RapidMind的达到了2.4倍的对于BLA SGEMM的速度行动,为FFT的2.7倍, 布莱克 - 肖尔斯和32.2倍。 2.4 GPU的缺点和替代加速技术 GPU架构的一些缺点,在本节进行了讨论,并简要介绍了一些替代的加速技术。 GPU的关键限制是固有的许多内核开发应用,使高层次的并行要求。此外,图形处理通常并不需要科学模拟的准确性和精度相同的水平,这是反映的事实,通常GPU的缺乏既纠错功能和双精度计算功能往往是不可用或合并一个性能命中。这是预期的改善与未来的GPU架构。 另一种常见的批评是GPU的耗电量大。 NVIDIA公司 特斯拉C870使用了170W的峰值,和120W的典型。产生的热量将很难GPU的数字集群大一起。 GPU还放置比CPU程序员更大的约束。为了避免显着的性能退化,它是必要条件,以避免内部内核。避免未合并的全局存储器访问是非常困难的,对于许多应用程序,这也严重降低性能。任何块间的通信功能的缺乏意味着它是不能确定时,在另一个块的线程已经完成了他们的计算块的线程。这意味着,如果需要从其他区块的计算结果,那么唯一的解决办法是为内核退出,另一个发射,保证所有的块已完成。 最后,GPU的遭受大量的CPU-GPU的通信延迟。这一瓶颈可能意味着,除非在GPU上完成加工量足够大,它可能会更快,只需在CPU上执行计算。有其他替代的加速技术,其中一些简要介绍如下。 ClearSpeed的一个替代方案,以GPU的设计,特别是为HPC应用的处理器,如ClearSpeed公司提供的,。这些产品通常是非常相似的GPU,与一些修改,通常使它们更适合HPC应用。这些差异之一是,所有内部和外部存储器中包含ECC(纠错码)来检测和纠正“软错误”。 “软错误”是随机的单位,如宇宙射线是由外部因素造成的错误。在显卡市场,这样的错误是可以容忍的,所以GPU的不包含的ECC,但HPC应用程序往往是可取或必要的。 ClearSpeed的产品也有更多的coresthan的GPU,但他们在一个较慢的时钟速度运行,以减少热量散失。也可用双精度。 ClearSpeed的处理器,如专门的产品有一个图形处理器市场吴丹帽子小得多。这使得GPU的优势一个数字,如规模经济, GR 英特尔Larrabee的另一种选择是可能会产生很大的兴趣,当它被释放在2009-2010年是英 特尔的Larrabee处理器。这将是一个多核心矢量能力的x86处理器。它有过的GPU使得处理器间的通信成为可能显着的优势。它也应该解决的其他问题影响GPU的CPU GPU的通讯延迟,如数量。它最初的目的在显卡市场,虽然专门的HPC产品在此基础上,在未来可能发生的。很可能,它也将包含ECC来减少“软错误”。AMD也正在开发类似的产品,目前名为“AMD Fusion的,但是一些细节尚未被释放。 Cell处理器成为Cell芯片包含一个Power处理器单元(PPE)和几个 协同处理单元(SPES)。 PPE的作用主要是控制在SPE, 做大部分的计算。 Cell处理器是相当类似的GPU。对于某些应用的GPU超越Cell处理器,而对于其他情况正好相反。 FPGA的现场可编程门阵列(FPGA)是基于连接通过围绕一个可配置逻辑块矩阵的可编程半导体设备 可编程互连。其中的设计,而不是正常的微处理器, 设备制造商的固定,FPGA可以编程计算 给定的应用程序所需的精确算法。这使得他们非常强大, 多才多艺。的主要缺点是,它们通常是相当困难的方案,他们也慢,如果需要高精度。对于某些任务,但他们是受欢迎的。是非常适合用于FPGA,例如一些费时的天文算法,其中只有4位精度是必要的。
/
本文档为【专业英语翻译】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索