Application-Level Checkpointing Techniques for Parallel Programs
- 格式:pdf
- 大小:130.42 KB
- 文档页数:14
Check Point抗DDoS拒绝服务攻击设备作者:暂无来源:《计算机世界》 2013年第3期获奖理由Check Point 抗DDoS拒绝服务攻击设备,不仅可以防范拒绝服务攻击,而且可以对网络安全状况进行集中管理。
Check Point 所推出的全新抗DDoS 拒绝服务攻击设备,通过多层定制保护以及12Gbps性能保证企业运转,同时自动阻止网络攻击和应用层攻击。
这一产品提供了灵活的部署选项,并提供了包括实时流量分析和威胁管理情报技术的集成安全管理功能,以阻止DDoS 攻击。
Check Point 抗DDoS 拒绝服务攻击设备,利用定制的多层次保护来阻止多种不同的攻击。
这种多层次保护以行为保护为基础,通过排列多个元素阻截不正常流量。
同时,这种保护方式可以自动生成和预定义签名,并采用了先进的响应技术。
目前,Check Point 抗DDoS 拒绝服务攻击设备不仅可以自动防御网络溢出攻击和应用层攻击,而且能够满足特定的网络环境和安全需求。
在流量到达防火墙之前,Check Point 抗DDoS 拒绝服务攻击设备可以快速地对流量进行过滤,从而保护网络、服务器并阻止漏洞攻击。
C h e c k P o i n t抗DDoS 拒绝服务攻击设备目前已经与Check Point安全管理集成在了一起,可以利用SmartEven、SmartLog 和SmartView 追踪器,对整个网络安全和DDoS 攻击状态进行实时和历史性的观察。
另外,其还拥有对Web 界面和命令型接口的独立策略管理。
凭借专用的硬件加速,Check Point 抗DDoS拒绝服务攻击设备可为所有的网络流量检查和保护提供高达12Gbps 的能力,从而预防DDoS 攻击,并阻止过度使用网络和安全设备的CPU资源。
Check Point 4600设备Check Point 4600 设备目前,企业网关不仅是防火墙。
它是为应对日益增多的复杂威胁而提供的一款安全设备。
作为企业安全网关,它必须使用多种技术来控制网络访问,检测复杂攻击,并提供其它安全能力,如数据丢失防护和防御基于Web的威胁等。
而智能手机和平板电脑等移动设备的扩散以及新型流媒体、社交网络和P2P应用软件则需要更大的连接容量和新的应用控制技术。
最终,企业向私有云和公共云服务的转型从各个方面改变了公司的边界,这需要更强的性能和额外的安全解决方案。
Check Point的新型设备将快速联网技术与高性能多核能力结合在一起,提供最高层次的安全性,同时不会降低网络速度,保证你的数据、网络和员工安全。
每种设备针对软件刀片架构而优化,能够运行任意软件刀片组合,通过将多种安全技术合并成一种集成解决方案而为每个网络站点的任意业务提供具有灵活性和精确性的安全等级。
每种Check Point设备都支持Check Point的3D安全远景规划,后者将策略、人和执行结合在一起,提供无与伦比的安全防护,并针对下列软件刀片的任意组合进行优化:(1)防火墙,(2)VPN,(3)IPS,(4)应用控制,(5)移动访问,(6)DLP,(7)URL过滤,(8)反病毒,(9)反垃圾邮件,(10)身份识别,(11)高级联网和集群。
概述Check Point 4600设备提供了完整的增强安全解决方案和1U设备中的领先性能。
除了八个板载1 GB铜缆以太网端口外,4600还具有一个扩展槽,可选装附加的四端口千兆电口卡、2端口或4端口光纤卡。
374个SecurityPower单元,高达9Gbps 防火墙吞吐量和4Gbps IPS性能的4600能够保证任何中小型办公室的安全。
主要特点374 SecurityPower 9 Gbps 防火墙吞吐量 4 Gbps IPS吞吐量多达12个10/100/1000Base-T端口 多达4个1GbE光纤端口 1个机架单元设备主要优点入门级企业安全设备通过一台设备提供保证你的网络安全所需的一切通过一个集成管理控制台简化管理 保证远程访问以及站点之间通信的数据安全通过可扩展软件刀片架构提供全面安全并防护不断出现的威胁网关软件刀片防火墙IPsec VPN 移动接入(5个用户) 高级联网和集群身份识别IPS 应用控制 数据丢失防护**URL 过滤**反病毒和反恶意软件 **反垃圾邮件***备选Check Point 4600设备SECURITYPOWER到目前为止,安全设备是根据每种安全功能的具体性能衡量指标(通常在最佳实验室测试条件下)以及具有一条规则的安全策略而选择的。
Application Guide For BTech Programmes ApplicantsSCALE Online Application Portal AY2021/2022 January IntakeThings to note before applying:1.Read through the information on SCALE website at https:///37efSqp.2.Have the necessary supporting documents ready. It should be in PDF format, not exceeding1.5MB. You may reference the list of documents at https:///2KzPayL as a guide. It ispreferred that coloured copies are submitted. For supporting documents that are not in English, it must be accompanied by an official translation of the same in English.3.All information that are declared in your application must be supported with documents forverification.4.Application fee is payable only via online payment.5.Depending on the number of programmes selected, you will need to pay anon-refundable and non-transferable application fee before your application is considered submitted.6.Take note of the application deadline. It is advisable to submit your application as early as possiblewithin the application period to prevent any delay in the processing. Any request for late submission of application after the application period will not be entertain.Step 1: Begin your application1.Ensure you are using one of the compatible browsers as listed.2.Read through the instructions before you proceed.3.Check that you are applying to the correct intake, and take note of the application period stated.Any request for late submission of application after the application period will not be entertain.4.Click APPLY NOW to begin your application.Step 2: Create your login password1.Create a password that fulfill the rules as stated. This password will be used to access theapplication portal.Step 3: Select the programmes1.Select the BTech Programmes from the dropdown list.2.Rank your preference if you are applying more than one BTech Programme.3.You are allowed to select up to a maximum of 5 programmes, and the application fee will basedon the number of programmes that you have selected in your application.Step 4: Provide your personal particulars1.The “Official Name” must be as per NRIC/passport, i.e. if there is any special character in yourname (e.g. comma), it should be included. Hanyu pinyin is however not required.2.The “Last Name” refers to your Surname or Family Name.3.For SPRs, your “Citizenship” should follows the nationality at the back of your blue NRIC, andS’pore Blue should be selected under “Type of NRIC”.4.For International applicant, select No NRIC under “Type of NRIC”, and indicate the correct type ofpass you are holding under “Employment Pass Type/Valid Pass Type”.Example for SPRExample for InternationalStep 5: Provide your contact information1. A valid residential address of your current residing home is required. It should be as per indicatedat the back of your NRIC for Singapore Citizens and SPRs. Should you have moved house and have yet to update your NRIC, you are to submit a recent billing statement/letter that shows your full name and latest current address as supporting document.2.Provide a valid email address that is frequently used as we will be contacting you mainly via email.3. A valid contact number must be provided for urgent matters. The country and area codes are notrequired if you are providing a Singapore number.Step 6: Confirm on the number of programmes to apply1.Once you have completed Step 1 to 5, click Proceed to continue.2. A pop-up message will be prompted with the total application fee payable shown. If there are nochanges to be made, click Proceed. If you would like to make changes to the information that was declared earlier, click Cancel to go back to the application.Step 7: Complete the remaining details required for submission1.Your application is now created and a status notification will be send to your registered personalemail that you have provided.2.Take note of your application number which is required for the portal login and it must beprovided when you correspond with us via email or phone call.3.Click on each tab on the left panel to complete your application before submission. You will needto click Save after completing each section for the portal to capture your records.NOTE: Your application is not considered as submitted until you have completed the application and made payment for the application fee.Step 8: Provide National Service (NS) information1.Applicants who have completed the 2 years NS liability are to indicate the ORD date as stated onyour Certificate of Service (COS).2.For applicants who are still serving your NS, select Currently Serving from the dropdown list. Youare to ensure your ORD date is before the commencement date of the intake, and an official letter from MINDEF stating the enlistment date and expected ORD date is to be submitted.3.For applicants who are regular officers (i.e. you are on a contract with MINDEF), selectPensionable/Contract SAF/Civil Defence Officer from the dropdown list and indicate Yes under “Contract Service”. You must have serve passed the 2-years liability, and an official letter from MINDEF with the enlistment date and expected Service Completion Date is to be submitted. 4.Applicants who have indicated Exempted in the application will need to submit the exemptionletter.Example for applicants who are currently serving NSExample for applicants who are on a contract serviceStep 9: Provide education background(A)S ingapore-Cambridge GCE O Level/SPM or equivalent1.If you have taken the Singapore-Cambridge “O” Level Examination, select Singapore-CambridgeGCE O Level from the “Examination” dropdown list.2.You are only required to indicate your grade(s) for the Mathematics subjects. If you have takenthe subject more than once, provide the higher grade and all result slips must be submitted. 3.For SPM holders, you may refer to the table below to guide you on keying in your grades.(B)Polytechnic Diploma1.You may declare up to a maximum of two diploma qualifications, if any.2.The exact course name as stated on your Diploma Certificate should be selected from thedropdown list under “Diploma Course”. E.g. if your course is Diploma in Engineering (Mechanical), you should not be selecting Diploma in Mechanical Engineering.3.Holders of the local 2.5 years Part-time Diploma are to select 2.5 Part Time under “DiplomaTaken”.4.Only holders from the 5 local Polytechnics and BCA Academy are required to indicate your GPAin the application.5.Provide the grades of your best 3 Mathematics modules taken, if any.(C)Advanced Diploma and Specialist Diploma1.This section is required only if you have taken an Advanced Diploma and/or Specialist Diploma.2.If you are currently still in the course, an official letter from the school stating your studentstatus and expected completion date is required.(D)U niversity Education1.If you have withdrawn/dismissed from a University, you are to submit the officialwithdrawal/dismissal letter and the transcript/result slips for modules that were taken previously.Additionally, if you have withdrawn from one of the local universities, an official document from the University with the following information is required as well.a)Nameb)NRICc)Programme enrolledd)Date of admissione)Date of withdrawal / dismissalf)No. of modular units/credits required to graduate (inclusive of exemption upon admission)g)No. of modular units/credits granted as exemption upon admissionh)No. of modular units/credits eligible to enjoy TFS at start of programme (for programme &buffer for failed and repeat modules)i)No. of modular units/credits consumed so far (for programme & buffer for failed and repeatmodules)(E)Other Local Qualification1.Should you have obtained other local qualifications (e.g. ACCA, NUS SCALE Certificate Courses,CET500); you may declare under this section and upload the supporting documents.Step 10: Provide employment information1.ALL employment declared in the application must be supported with the relevant documentsfor verification. Employment that is declared without any supporting documents will not be taken into consideration.2.Polytechnic internship and the 2-years National Service (NS) liability are not considered as workexperience. These should not be declared under the employment section.3. A detailed job description of your current employment is to be provided as it is one of theconsiderations that will be reviewed.4.If you wish to declare more than one previous employment, click on the Add button.5.Previous employment letters/documents of various companies should be combine into one PDFfile if you have declared more than one previous employment.6.If your current employer is sponsoring you for your studies, i.e. financial (e.g. sponsoring of tuitionfee) or non-financial (e.g. providing exam leave), the official approved sponsorship letter with the specific details must be provided.Step 11: Provide Next-of-Kin information1.Provide a valid contact of your next-of-kin for emergency purposes. The country and area codesare not required if you are providing a Singapore number.Step 12: Declaration1.Should you have any health declaration to be made, please specify in details. Official medicalrecords are to be submitted for verification.Step 13: Check and submit your application1.Section marked with a cross implies the particular section in your application is incomplete. Youare to re-visit the section and complete it.2.If you have completed all required sections in the application (i.e. tick in all sections), you mayclick on the Submit button to proceed.Step 14: View, print and make payment for your application1.Check and ensure all details provided in the application are correct. You may make changes toyour application by clicking on the Edit button at the top right corner.2.To print a copy of your application for reference, click on the Print button.3.If there are no changes to be made, click the Payment button to proceed and complete yoursubmission.Step 15: Payment of Application Fee1. A summary of the programmes applied and the total application fee payable will be stated.2.Select your payment method and click Proceed to Payment.3.Follow the instruction on the screen to complete your application fee payment.4.Once payment has been made successfully, you will receive an email with the e-receipt attached. NOTE: Your application will only be processed after the application fee is received. The application fee is non-refundable and non-transferable.。
WMIRS 2.0Flight Academy Management Screen – Beta Test BackgroundYou are being invited to participate in a Beta test of the WMIRS 2.0 Flight Academy Management (FAM) screen. In addition to providing you with an opportunity to become familiar with the application prior to your academy, this test will help us to ensure that a quality product is delivered. Each flight academy will be given a specific mission number to use for testing. Testing will be conducted on what is referred to as the “staging server.” A Testing Feedback tool will help guide you through the test process and provide you with a place to record test results. These systems, tools and processes are explained in greater detail in the following paragraphs.Accessing the CAPNHQ Staging Server and Testing Feedback ToolTo begin testing, go to the staging server at https:// and log in using your normal CAP eServices credentials. At the top of the window, click on the smiley face (see arrow below)…You will be taken to the Testing Feedback tool, as shown below. Under Testing Home, click on the Tutorial link and listen to the four-minute video on how the tool works. Return to Testing Home.There are several on-going tests and we need to be sure we stay in our swim lane, so input “WMIRS” in the Search field on the right. If you want to see all WMIRS tests without having to page through, change “Show entries” on the left to 50. Each test has a Test ID and Test Name followed by a Description. The description starts with a role (“As a Basic User,”) and then describes what you should do (sign in, edit, and sign out…”). Please attempt only those tests that are applicable to your role.Performing the Tests on WMIRS 2.0Open another window/tab in your browser and insert https:///WMIRS/Default.aspx in the address field. Click on Advanced Search; reset to Default Search, if required; enter your assigned mission number at the top, then click Search.You can now navigate to the Mission Info (by clicking the Mission No) or Flight Academy Management Screen (by clicking the number under “Air”) to complete your assigned tests. Please complete each test in order of presentation. If you do not understand how to perform one of the tests, please review the training materials https:///programs/cadets/activities/national-cadet-special-activities/activity-director-help-page. If that doesn’t answer your questions, you can get additional technical support from ********************.Recording Test ResultsRecord the results of each test by returning to the window with the Testing Feedback tool and entering the results by clicking on New.For any test that fails, please ensure you provide enough information to ensure the issue is fully understood. List the steps that you followed, a description of what happened/didn’t happen, and the Mission#/Sortie #, as applicable.Important Things to NoteThe staging server is configured identically to the “production server” that provides WMIRS to users in the field. However, member SSN, DOB, address and email contact information has been removed to protect their personal information. One of the added benefits of this approach it that the staging server is unable to send email messages regarding test activity to pilots, FROs, or Wing Commanders. You can add, edit, or delete mission, sortie, aircraft maintenance, and cost information on the staging server without fear of effecting anything in the “real world.”The following known issues exist in this version of the FAM screen.1.In Google Chrome, the ORM window opens as a standalone, sized window with a scroll bar.However, the window is too tall with the bottom off screen, so the user cannot reach thebottom by scrolling. Microsoft Edge opens in a new window with a scroll bar, but the window is too narrow and the lines are wrapped. WORKAROUND -- Chrome and Edge users shouldmaximize the window prior to starting the survey. (Help Desk Ticket #: 54024. Fix is scheduled to be deployed on 14 May 19.)2.Whenever you delete a sortie, the date filter goes back to ALL. WORKAROUND – Refilter thedate after a delete. (Help Desk Ticket #: 54023. Fix is scheduled to be deployed on 14 May 19.)3.Non-instructor/student personnel can be added via Other Personnel and you get feedback, butthey are not displayed in a table. WORKAROUND: Personnel added using Other Personnelappear on the Mission Edit > Resource Sign In/Sign Out page. Users can go there to view andedit entries. (Help Desk Ticket #: 54022. Fix is scheduled to be deployed on 14 May 19.)4.After upload of a receipt, the left menu still shows Receipt Upload instead of View Receipt. Thisis corrected at the next refresh. (Help Desk Ticket #: 54020. Fix is scheduled to be deployed on14 May 19.)5.If a date filter has been selected on the FAM screen, that filter is not maintained when youselect "Access Standard Sortie List." Refilter the display, as desired/required. (Ticket #: 54019)6.When “Misc Mx” inputs are submitted there is no feedback to the user. The entry fields justclear. WORKAROUND – Go to the Aircraft Log, select the aircraft, and search for the appropriate entry in the report to confirm data was submitted. (Ticket #: 54018). CompatibilityWMIRS 2.0 FAM has been tested on:•Microsoft Windows 10•Apple iPad•Android Tablet•Microsoft Edge•Microsoft Internet Explorer•Google Chrome•Apple SafariFunctional Area Point of ContactKevin Conyers, ********************。
Hybrid Mesh Firewalls Protect the Expanding Attack Surfaces of Distributed SitesExecutive SummaryThe widespread adoption of new digital innovations has transformed enterprise networks—adding breakthrough capabilities while at the same time exposing new vulnerabilities. Network attack surfaces have dramatically expanded with the rapid proliferation of the mobile workforce, multiple public and private clouds, and Internet-of-Things (IoT) devices. Enterprise IT teams must now defend corporate sites that include direct internet access, such as branches and campuses, as well as on-premises data centers, public clouds, and remote sites to support work from anywhere (WFA). This makes extended enterprises more difficult to secure. Fortinet FortiGate Next-Generation Firewalls (NGFWs) are part of a hybrid mesh firewall (HMF) solution that enables broad, integrated, and automated protection against emerging threats and increasing network complexity. FortiGate is an integral part of the Fortinet Security Fabric, an end-to-end security architecture designed to protect evolving networks.Distributed Networks Present a Larger Target for Attack Fortinet NGFWsn High-performance threat protectionn Validated security effectivenessn Protection of mission-critical applicationsn Continuous risk assessment via security rating and automationn Integration with the Fortinet Security Fabricn Enterprise-class security managementSOLUTION BRIEFNew technologies are causing enterprise networks to expand. This includes the widespread adoption of cloud environments, geographically distributed offices, and a greater number and variety of endpoint devices. Cyberattack damage will amount to about $10.5 trillion annually by 2025, a 300% increase from 2015.1Threat actors are well aware of this vulnerability. They pinpoint the weakest points across this ever-expanding network surface. They use sophisticated strategies (such as multivector or polymorphic attacks) and automated processes to penetrate defenses to steal sensitive information or lock down operations in exchange for ransom.Trying to keep up, network engineering and operations leaders worry about a lack of complete visibility into encrypteddata and control of a network infrastructure that spans applications, data, users, and multiple network edges. At many organizations, the vast number of disconnected point security products operating in silos across the network only increases complexity. A recent Panaseer report found that the shift to cloud and remote working has driven a 19% increase over the past two years in the number of security tools organizations must manage—from 64 to 76.2 This results in a less effective security posture, as the same report found that 82% of security leaders have been surprised by a security event, incident, or breach that evaded a control they thought was in place.3Driving the Evolution in Network SecurityNetwork engineering and operations leaders need greater compatibility across the different security solutions deployed across the entire organization to improve security effectiveness. They need security that can share threat intelligence inreal time, a high level of reliable network performance, open application programming interfaces (APIs) to coordinate and automate responses, and simplified security management in a single-pane-of-glass console.Enterprises need to protect the entire expanding attack surface—from IoT to multiple clouds, and from users to data. This includes performing secure sockets layer (SSL)/transport layer security (TLS) inspection to detect malware in encrypted flows. Fortinet FortiGate NGFW solutions address all these needs by taking a more collaborative and integrated approach acrossthe entire IT infrastructure.Fortinet FortiGate NGFWs: Protecting Corporate Sites and Data CentersFortiGate NGFWs simplify security complexity and provide visibility into applications, users, and networks. Appliances utilize purpose-built security processing units (SPUs) and threat intelligence services from FortiGuard Labs to deliver top-rated security and high-performance threat protection (such as intrusion prevention, web filtering, anti-malware, application control) for known attacks. The unknown attacks are detected and prevented by Fortinet on-premises and cloud-based advanced threat protection solutions.As part of the broader Fortinet Security Fabric architecture, FortiGate NGFWs leverage automated, policy-based responses to accelerate time to resolution. When a FortiGate NGFW detects an event, it communicates with the Security Fabric, which determines what information will be shared across the enterprise. For example, when malware is detected in one part of theorganization, the Security Fabric shares threat intelligence with the rest of the IT infrastructure. In another instance, when a policy is created for one security solution, the Security Fabric can contextually apply that same policy across other security solutions in the architecture for consistent and coordinated control.FortiGate NGFWs allow deployment flexibility to be tailored to the specific security needs of an enterprise that requires either running one or more security features like SSL/TLS inspection, IPS, and antivirus individually or concurrently with minimalperformance degradation. All deployed FortiGate devices across the organization’s network infrastructure are interconnected via the Security Fabric. This integration provides comprehensive, real-time protection while simplifying deployment and reducing the need for multiple touchpoints and policies across the enterprise.Fortinet NGFW Use Cases n Reduce complexity. Consolidate products and services, reduce costs, and maximize return on investment (ROI).n Encrypted cloud access. Achieve transparency and control by inspecting all types of traffic—from clear text to encrypted (SSL/TLS).n Visibility and automation. Gain access to network and security events for contextual visibility while simplifying operations with automated processes.Industry-Leading Security EffectivenessExtensive knowledge of the threat landscape and the ability to respond quickly at multiple levels are the foundations for effective network security. This is why the FortiGuard Threat Intelligence Service—credited with an unprecedented 1,026+ zero-day threat and vulnerability discoveries 4 is a crucial enabler of Fortinet’s world-class NGFW capabilities.Figure 1: Hybrid Mesh FirewallFortiGuard AI-Powered Security ServicesFigure 2: FortiGuard Labs 360 degrees of threat intelligenceThe FortiGuard global threat research team collaborates with Fortinet product developers to deliver dynamic security intelligence services. Security updates are instantaneous—automatically and independently validated by third-party research labs. This ensures that the threat intelligence is highly accurate and effective.Fortinet receives consistently high marks in real-world security effectiveness tests, such as those from , Virus Bulletin, and AV-Comparatives, due to our combination of in-house research, information from industry sources, and advanced machine-learning capabilities.Simplify Operations with Centralized and Unified ManagementThe unique single-platform approach of the Fortinet NGFW, which includes flexible deployment options, delivers end-to-end protection that is easy to buy, deploy, and manage. Centralized security management and visibility consolidate multiple management consoles into a single pane of glass and unlock automation-driven management. Specifically, a highly intuitive view of applications, users, devices, threats, cloud service usage, and deep inspection gives network engineering and operationsleaders a better sense of what is happening on their networks. This strategic view allows them to easily create and manage moregranular policies to optimize security and network resources.Figure 3: FortiManager dashboard viewNetwork leaders can transparently observe traffic and set consolidated policies with granular security controls. Networkmanagement becomes both automation-driven and analytics-powered via a single-pane-of-glass console for logging, reporting,and central administration.One Hybrid Mesh Firewall Solution across the Extended EnterpriseAs a foundational part of a hybrid mesh firewall, FortiGate NGFWs deliver protection that keeps pace with the accelerating demands of high-performance enterprise networking. FortiGate NGFWs feature centralized management that unifies protection across corporate sites such as branches and campuses and on-premises data centers, public clouds, and remote sites for work from anywhere. Every FortiGate NGFW appliance contains purpose-built security processor technology, which provides extremely high throughput and exceptionally low latency while delivering industry-leading security effectiveness and consolidation.Figure 4: Fortinet Security FabricThe FortiGate NGFW family includes a set of flexible platforms at various price-performance points that can be deployed at the enterprise edge, data center edge, or branches of a distributed enterprise to provide secure access to multiple clouds. FortiGate NGFWs can also be deployed within the data center as part of an intent-based segmentation solution. Intent-based segmentation creates partitions across flat and open networks to reduce the attack surface.It also applies adaptive access controls that establish continuous trust of users and devices based on user and entity behavior analytics (UEBA).Copyright © 2023 Fortinet, Inc. All rights reserved. Fortinet , FortiGate , FortiCare and FortiGuard , and certain other marks are registered trademarks of Fortinet, Inc., and other Fortinet names herein may also be registered and/or common law trademarks of Fortinet. All other product or company names may be trademarks of their respective owners. Performance and other metrics contained herein were attained in internal lab tests under ideal conditions, and actual performance and other results may vary. Network variables, different network environments and other conditions may affect performance results. Nothing herein represents any binding commitment by Fortinet, and Fortinet disclaims all warranties, whether express or implied, except to the extent Fortinet enters a binding written contract, signed by Fortinet’s General Counsel, with a purchaser that expressly warrants that the identified product will perform according to certain expressly-identified performance metrics and, in such event, only the specific performance metrics expressly identified in such binding written contract shall be binding on Fortinet. For absolute clarity, any such warranty will be limited to performance in the same ideal conditions as in Fortinet’s internal lab tests. Fortinet disclaims in full any covenants, representations, and guarantees pursuant hereto, whether express or implied. Fortinet reserves the right to change, modify, transfer, or otherwise revise this publication without notice, and the most current version of the publication shall be applicable. June 8, 2023 11:49 PM 1 B harath Aiyer, Jeffrey Caso, Peter Russell, and Marc Sorel, New survey reveals $2 trillion market opportunity for cybersecurity technology and service providers McKinsey & Company, October 22, 2022.2 Panaseer, 2022 Security Leaders Peer Report , January 2022.3Ibid.4FortiGuard Labs Zero-Day Research , accessed May 31, 2023.5 , Enterprise Firewall Comparative Report , April 24 2023.Enabling a Broad and Dynamic Defense Strategy for the Long TermFortinet NGFWs offer universal platform support for all types of deployments,giving network leaders exceptional flexibility across the extended enterpriseinfrastructure. Managers have the visibility and control they need to counterattackers with a single network security operating system across the entireFortiGate family of solutions.Additionally, all the FortiGate appliances are interconnected via the FortinetSecurity Fabric to automatically distribute contextual security policies and threatintelligence across an organization. FortiGate devices are industry-leading fortheir security capabilities, rated 99.88% effective against cyber exploits andevasions by .5A single-pane-of-glass dashboard consolidates management views, enhancesvisibility, and simplifies security policy implementation, so you can build a HMFto protect your expanding attack surface across distributed sites, including datacenters, public clouds, and remote locations.。
NI VisionNI Vision Builder for Automated Inspection TutorialAugust 2012373379K-01Worldwide Technical Support and Product InformationWorldwide OfficesVisit /niglobal to access the branch office Web sites, which provide up-to-date contact information, support phone numbers, email addresses, and current events.National Instruments Corporate Headquarters11500 North Mopac Expressway Austin, Texas 78759-3504USA Tel: 512 683 0100 For further support information, refer to the Technical Support and Professional Services appendix. To comment on National Instruments documentation, refer to the National Instruments Web site at /info and enter the Info Code feedback.Important InformationWarrantyThe media on which you receive National Instruments software are warranted not to fail to execute programming instructions, due to defects in materials and workmanship, for a period of 90 days from date of shipment, as evidenced by receipts or other documentation. National Instruments will, at its option, repair or replace software media that do not execute programming instructions if National Instruments receives notice of such defects during the warranty period. National Instruments does not warrant that the operation of the software shall be uninterrupted or error free.A Return Material Authorization (RMA) number must be obtained from the factory and clearly marked on the outside of the package before any equipment will be accepted for warranty work. National Instruments will pay the shipping costs of returning to the owner parts which are covered by warranty.National Instruments believes that the information in this document is accurate. The document has been carefully reviewed for technical accuracy. In the event that technical or typographical errors exist, National Instruments reserves the right to make changes to subsequent editions of this document without prior notice to holders of this edition. The reader should consult National Instruments if errors are suspected. In no event shall National Instruments be liable for any damages arising out of or related to this document or the information contained in it.E XCEPT AS SPECIFIED HEREIN, N ATIONAL I NSTRUMENTS MAKES NO WARRANTIES, EXPRESS OR IMPLIED, AND SPECIFICALLY DISCLAIMS ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. C USTOMER’S RIGHT TO RECOVER DAMAGES CAUSED BY FAULT OR NEGLIGENCE ON THE PART OF N ATIONAL I NSTRUMENTS SHALL BE LIMITED TO THE AMOUNT THERETOFORE PAID BY THE CUSTOMER. N ATIONAL I NSTRUMENTS WILL NOT BE LIABLE FOR DAMAGES RESULTING FROM LOSS OF DATA, PROFITS, USE OF PRODUCTS, OR INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. This limitation of the liability of National Instruments will apply regardless of the form of action, whether in contract or tort, including negligence. Any action against National Instruments must be brought within one year after the cause of action accrues. National Instruments shall not be liable for any delay in performance due to causes beyond its reasonable control. The warranty provided herein does not cover damages, defects, malfunctions, or service failures caused by owner’s failure to follow the National Instruments installation, operation, or maintenance instructions; owner’s modification of the product; owner’s abuse, misuse, or negligent acts; and power failure or surges, fire, flood, accident, actions of third parties, or other events outside reasonable control.CopyrightUnder the copyright laws, this publication may not be reproduced or transmitted in any form, electronic or mechanical, including photocopying, recording, storing in an information retrieval system, or translating, in whole or in part, without the prior written consent of National Instruments Corporation.National Instruments respects the intellectual property of others, and we ask our users to do the same. NI software is protected by copyright and other intellectual property laws. Where NI software may be used to reproduce software or other materials belonging to others, you may use NI software only to reproduce materials that you may reproduce in accordance with the terms of any applicable license or other legal restriction.End-User License Agreements and Third-Party Legal NoticesYou can find end-user license agreements (EULAs) and third-party legal notices in the following locations:•Notices are located in the <National Instruments>\_Legal Information and <National Instruments> directories.•EULAs are located in the <National Instruments>\Shared\MDF\Legal\license directory.•Review <National Instruments>\_Legal Information.txt for more information on including legal information in installers built with NI products.TrademarksLabVIEW, National Instruments, NI, , the National Instruments corporate logo, and the Eagle logo are trademarks of National Instruments Corporation. Refer to the Trademark Information at /trademarks for other National Instruments trademarks.Other product and company names mentioned herein are trademarks or trade names of their respective companies. Members of the National Instruments Alliance Partner Program are business entities independent from National Instruments and have no agency, partnership, or joint-venture relationship with National Instruments.PatentsFor patents covering National Instruments products/technology, refer to the appropriate location: Help»Patents in your software, the patents.txt file on your media, or the National Instruments Patent Notice at /patents.Export Compliance InformationRefer to the Export Compliance Information at /legal/export-compliance for the National Instruments global trade compliance policy and how to obtain relevant HTS codes, ECCNs, and other import/export data.WARNING REGARDING USE OF NATIONAL INSTRUMENTS PRODUCTS(1) NATIONAL INSTRUMENTS PRODUCTS ARE NOT DESIGNED WITH COMPONENTS AND TESTING FOR A LEVEL OF RELIABILITY SUITABLE FOR USE IN OR IN CONNECTION WITH SURGICAL IMPLANTS OR AS CRITICAL COMPONENTS IN ANY LIFE SUPPORT SYSTEMS WHOSE FAILURE TO PERFORM CAN REASONABLY BE EXPECTED TO CAUSE SIGNIFICANT INJURY TO A HUMAN.(2) IN ANY APPLICATION, INCLUDING THE ABOVE, RELIABILITY OF OPERATION OF THE SOFTWARE PRODUCTS CAN BE IMPAIRED BY ADVERSE FACTORS, INCLUDING BUT NOT LIMITED TO FLUCTUATIONS IN ELECTRICAL POWER SUPPLY, COMPUTER HARDWARE MALFUNCTIONS, COMPUTER OPERATINGPROBLEMS, MALFUNCTIONS OR FAILURES OF ELECTRONIC MONITORING OR CONTROL DEVICES, TRANSIENT FAILURES OF ELECTRONIC SYSTEMS (HARDWARE AND/OR SOFTWARE), UNANTICIPATED USES OR MISUSES, OR ERRORS ON THE PART OF THE USER OR APPLICATIONS DESIGNER (ADVERSE FACTORS SUCH AS THESE ARE HEREAFTER COLLECTIVELY TERMED “SYSTEM FAILURES”). ANY APPLICATION WHERE A SYSTEM FAILURE WOULD CREATE A RISK OF HARM TO PROPERTY OR PERSONS (INCLUDING THE RISK OF BODILY INJURY AND DEATH) SHOULD NOT BE RELIANT SOLELY UPON ONE FORM OF ELECTRONIC SYSTEM DUE TO THE RISK OF SYSTEM FAILURE. TO AVOID DAMAGE, INJURY, OR DEATH, THE USER OR APPLICATION DESIGNER MUST TAKE REASONABLY PRUDENT STEPS TO PROTECT AGAINST SYSTEM FAILURES, INCLUDING BUT NOT LIMITED TO BACK-UP OR SHUT DOWN MECHANISMS. BECAUSE EACH END-USER SYSTEM IS CUSTOMIZED AND DIFFERS FROM NATIONAL INSTRUMENTS' TESTING PLATFORMS AND BECAUSE A USER OR APPLICATION DESIGNER MAY USE NATIONAL INSTRUMENTS PRODUCTS IN COMBINATION WITH OTHER PRODUCTS IN A MANNER NOT EVALUATED OR CONTEMPLATED BY NATIONAL INSTRUMENTS, THE USER OR APPLICATION DESIGNER IS ULTIMATELY RESPONSIBLE FOR VERIFYING AND VALIDATING THE SUITABILITY OF NATIONAL INSTRUMENTS PRODUCTS WHENEVER NATIONAL INSTRUMENTS PRODUCTS ARE INCORPORATED IN A SYSTEM OR APPLICATION, INCLUDING, WITHOUT LIMITATION, THE APPROPRIATE DESIGN, PROCESS AND SAFETY LEVEL OF SUCH SYSTEM OR APPLICATION.ContentsAbout This Manual Conventions (x)Related Documentation (x)Chapter 1Introduction to Vision Builder AIVision Builder AI Configuration Interface.......................................................................1-4 Elements of the Configuration Interface..................................................................1-5 Inspection State Diagram..........................................................................................1-6 Vision Builder AI Inspection Interface............................................................................1-7 Running an Inspection......................................................................................................1-8 Configuration Interface.............................................................................................1-8 Inspection Interface..................................................................................................1-9 Chapter 2Checking for the Presence of a PartCreating a New Inspection...............................................................................................2-1 Acquiring Inspection Images............................................................................................2-1 Defining a Feature on which to Base a Coordinate System.............................................2-2 Setting a Coordinate System.............................................................................................2-6 Checking for the Cap Using Measure Intensity................................................................2-6 Setting the Inspection Status.............................................................................................2-8 Testing the Inspection.......................................................................................................2-9 Saving the Inspection........................................................................................................2-9 Chapter 3Inspecting Objects for Correct MeasurementsCreating a New Inspection...............................................................................................3-1 Acquiring and Calibrating Inspection Images..................................................................3-1 Locating Features to Measure...........................................................................................3-4 Measuring Parts of the Gasket..........................................................................................3-7 Setting the Inspection Status.............................................................................................3-8 Testing the Inspection.......................................................................................................3-8 Saving the Inspection........................................................................................................3-9 Chapter 4Inspecting for Multiple Correct Instances of an ObjectCreating a New Inspection...............................................................................................4-1 Acquiring Inspection Images............................................................................................4-1 Defining a Feature on which to Base a Coordinate System.............................................4-2 Setting a Coordinate System.............................................................................................4-3ContentsMeasuring the Separation between Connectors................................................................4-3 Inspecting the Fuse Conductor.........................................................................................4-5 Making Logical PASS/FAIL Decisions...........................................................................4-7 Setting the Inspection Status.............................................................................................4-9 Testing the Inspection.......................................................................................................4-10 Saving the Inspection........................................................................................................4-10 Chapter 5Inspecting an Object that Spans Two Image FramesCreating a New Inspection................................................................................................5-1 Acquiring Inspection Images from Two Cameras............................................................5-1 Acquiring and Calibrating the Image of the Left Edge............................................5-2 Acquiring and Calibrating the Image of the Right Edge..........................................5-5 Locating the Right Edge of the Part..................................................................................5-7 Switching Images..............................................................................................................5-9 Locating the Left Edge of the Part....................................................................................5-9 Calculating the Width of the Part.....................................................................................5-10 Setting Calculator Step Inputs and Outputs..............................................................5-11 Adding Operators and Constants..............................................................................5-12 Connecting the Equation Elements...........................................................................5-14 Making Logical PASS/FAIL Decisions with the Calculator Step............................5-15 Setting the Inspection Status.............................................................................................5-17 Testing the Inspection.......................................................................................................5-17 Saving the Inspection........................................................................................................5-18 Chapter 6Branching and Decision MakingCreating a New Inspection................................................................................................6-1 Creating the Inspection State Diagram.............................................................................6-1 Acquiring Inspection Images............................................................................................6-5 Checking for a Spray Bottle in the Image.........................................................................6-6 Checking for the Cap Using the Caliper...........................................................................6-7 Setting the Inspection Status.............................................................................................6-9 Creating Custom Overlays for Inspection........................................................................6-9 Configuring State Transitions...........................................................................................6-11 Testing the Inspection.......................................................................................................6-13 Saving the Inspection........................................................................................................6-14 Chapter 7Looping and VariablesCreating a New Inspection................................................................................................7-1 Creating the Inspection State Diagram.............................................................................7-1 Creating a Variable...........................................................................................................7-5 Acquiring Inspection Images............................................................................................7-5Contents Finding Pin Edges.............................................................................................................7-6 Initializing the Variable....................................................................................................7-7 Indexing Measurements in a Result Array.......................................................................7-8 Setting a Coordinate System.............................................................................................7-8 Checking the Pin Gap.......................................................................................................7-9 Updating the Variable.......................................................................................................7-10 Identifying Failed Pins......................................................................................................7-10 Setting the Inspection Status.............................................................................................7-11 Displaying the Current Inspection Image.........................................................................7-12 Configuring State Transitions...........................................................................................7-13 Testing the Inspection.......................................................................................................7-14 Saving the Inspection........................................................................................................7-14 Appendix ATechnical Support and Professional ServicesGlossaryAbout This ManualThis manual contains many techniques for using NI Vision Builder for Automated Inspection (Vision Builder AI) to solve visual inspection tasks including inspection, gauging, part presence, guidance, and counting.Follow the instructions in this manual to familiarize yourself with Vision Builder AI and perform common inspection tasks.This manual contains the following chapters:•Chapter1, Introduction to Vision Builder AI, introduces the Vision Builder AI environment and describes how to run an inspection.•Chapter2, Checking for the Presence of a Part, introduces the Match Pattern, Measure Intensity, and Set Coordinate System steps. Follow the instructions in this chapter to create an inspection that checks for the presence of a spray bottle cap regardless of the bottle position in the inspection images.•Chapter3, Inspecting Objects for Correct Measurements, introduces image calibration, and the Detect Objects and Geometry steps. Follow the instructions in this chapter to create an inspection that measures the distance between holes in a gasket to verify that the gasket conforms to manufacturing specifications.•Chapter4, Inspecting for Multiple Correct Instances of an Object, introduces the Find Straight Edge, Caliper, and Decision Making steps. Follow the instructions in thischapter to create an inspection that measures the distance between the blade connectors ofa fuse and checks the integrity of the fuse conductor regardless of the fuse position orwhether the fuse is inverted.•Chapter5, Inspecting an Object that Spans Two Image Frames, introduces the Select Image and Calculator steps. Follow the instructions in this chapter to create an inspection that measures the width of a wooden plank that spans two images.•Chapter6, Branching and Decision Making, introduces the inspection state diagram and the Custom Overlay step. Follow the instructions in this chapter to create an inspection that checks the image for the presence of a spray bottle and, if a bottle is present, transitions to another state to determine if the bottle has a cap. If there is no spray bottle present in the image, the inspection moves on to the next image.•Chapter7, Looping and Variables, uses the inspection state diagram to implement a looping inspection and introduces the Set Variable and Array Operator steps. Follow the instructions in this chapter to create an inspection that inspects images of electroniccomponents to determine if the distance between pins on the component is within apredetermined range. If the pin is too close or too far away from an adjacent pin, then the inspection fails. The inspection does not need to check every pin on the microchip before failing the inspection. The inspection fails at the first failed pin.About This ManualConventionsThe following conventions appear in this manual:»The » symbol leads you through nested menu items and dialog boxoptions to a final action. The sequence Options»Settings»Generaldirects you to pull down the Options menu, select the Settings item,and select General from the last dialog box.This icon denotes a tip, which alerts you to advisory information.This icon denotes a note, which alerts you to important information.This icon denotes a caution, which advises you of precautions to taketo avoid injury, data loss, or a system crash.bold Bold text denotes items that you must select or click in the software,such as menu items and dialog box options. Bold text also denotesparameter names.italic Italic text denotes variables, emphasis, a cross-reference, or anintroduction to a key concept. Italic text also denotes text that is aplaceholder for a word or value that you must supply.monospace Text in this font denotes text or characters that you should enter fromthe keyboard, sections of code, programming examples, and syntaxexamples. This font is also used for the proper names of disk drives,paths, directories, programs, subprograms, subroutines, device names,functions, operations, variables, filenames, and extensions. Related DocumentationThe following documents contain information that you might find helpful as you read this manual:•NI Vision Builder for Automated Inspection Readme—Contains information about the minimum system requirements, installation instructions, device support, and known issues for NI Vision Builder for Automated Inspection. The NI Vision Builder for Automated Inspection Readme is available at Start»All Programs»National Instruments»Vision Builder AI»Documentation.•NI Vision Builder for Automated Inspection: Configuration Help—Contains information about using the Vision Builder AI Configuration interface to create a machine visionapplication. NI Vision Builder for Automated Inspection: Configuration Help is available by selecting Help»Online Help from the Vision Builder AI Configuration interface.About This Manual •NI Vision Builder for Automated Inspection: Inspection Help—Contains information about running applications created using Vision Builder AI in the Vision Builder AI Inspection Interface. NI Vision Builder for Automated Inspection: Inspection Help is available by selecting Help»Online Help from the Vision Builder AI Inspection interface.•NI Developer Zone—Visit /zone for the latest example programs, tutorials, technical presentations, and a community area where you can share ideas, questions, and source code with developers around the world.•NI 17xx Smart Camera User Manual—Describes the electrical and mechanical aspects of the NI 17xx smart camera, troubleshooting guidelines, and information about the LEDs, DIP switches, and connectors on the NI 17xx.•NI 177x Smart Camera User Manual—Describes the electrical and mechanical aspects of the NI 177x smart camera and information about the LEDs and connectors on the NI 177x.•NI EVS-1463 User Manual—Describes the electrical and mechanical aspects of the NI EVS-1463 embedded vision system, troubleshooting guidelines, and information about the LEDs, DIP switches, and connectors on the EVS-1463 device.•NI EVS-1464 User Manual—Describes the electrical and mechanical aspects of the NI EVS-1464 embedded vision system, troubleshooting guidelines, and information about the LEDs, DIP switches, and connectors on the EVS-1464 device.•NI Smart Camera I/O Accessory User Guide—Describes the features of the NI Smart Camera I/O Accessory, what you need to get started, and the installation and operation of the device.•NI Vision Concepts Help—Describes the basic concepts of image analysis, image processing, and machine vision. This document also contains in-depth discussions about imagingalgorithms for advanced users. The NI Vision Concepts Help is available by selectingStart»All Programs»National Instruments»Vision Builder AI»Documentation»NI Vision Concepts Help from the Start menu.1 Introduction to Vision Builder AIThis chapter introduces the Vision Builder AI environment and describes how to run an inspection.Figures1-1 and1-2 show general instructions for creating a Vision Builder AI inspection. Figure1-1 describes the basic steps for designing a Vision Builder AI inspection. The Add Inspection Steps module of Figure1-1 is expanded in Figure1-2.Chapter 1Introduction to Vision Builder AIFigure 1-1. Instructions for Creating a Basic Vision Builder AI InspectionChapter 1Introduction to Vision Builder AIFigure 1-2. Adding Inspection Steps to a Vision Builder AI InspectionChapter 1Introduction to Vision Builder AIVision Builder AI Configuration InterfaceVision Builder AI has two modes of operation: Configuration and Inspection. Use the Configuration interface to configure and test your inspection. Use the Inspection interface to deploy the software and perform online or offline visual inspection.Complete the following instructions to open the Vision Builder AI Configuration interface. 1.Select Start»All Programs»National Instruments»Vision Builder AI to launch VisionBuilder AI.Note By default, My Computer is selected in the list of targets. When My Computeris selected Vision Builder AI runs on the development computer.2.On the Vision Builder AI welcome screen, click New Inspection to open the Vision BuilderAI Configuration Interface.Chapter 1Introduction to Vision Builder AIElements of the Configuration InterfaceFigure 1-3 shows the Vision Builder AI Configuration interface. The Configuration interface contains four areas: Main window, Overview window, Inspection Steps palette, and State Configuration window.Figure 1-3. Vision Builder AI Configuration Interface•Main window —Displays the image being processed, property pages for some inspection steps, or the state diagram for the inspection. Use the Main window to define regions of interest in an image, configure step parameters for some steps, and create/modify the state diagram for an inspection.•Overview window —Displays a thumbnail view of either the current inspection image or the state diagram for the inspection.1M a in Window 2Overview Window3In s pection S tep s P a lette 4S t a te Config u r a tion Window43Chapter 1Introduction to Vision Builder AI•Inspection Steps palette—Lists and describes the steps that you use to create your inspection. When you click on most steps, the palette transforms into the property page for the step.•State Configuration window—Displays the list of steps in the currently selected state in the inspection.Inspection State DiagramVision Builder AI uses a state diagram to define inspections with unique states and transitions that govern the execution flow of the inspection. Simple inspections can be defined using the single-state default inspection, shown in Figure1-4.Figure 1-4. Default Inspection State DiagramMore complex inspections can be created by adding additional states and transitions to the default state diagram. Figure1-5 shows an example of an inspection that uses the state diagram to perform branching and looping in the inspection.Figure 1-5. Example of a Vision Builder AI Inspection State DiagramChapter 1Introduction to Vision Builder AI Within a state diagram, each state can lead to one or multiple states or can end the inspection cycle. Each state diagram relies on in-state calculations or user input to determine the next state to execute. Vision Builder AI executes the state diagram continuously from the Start point to the End point.Each state in an inspection is intended to contain a discrete set of inspection steps. To access the steps contained in a state, select the state on the state diagram. The steps present in the state will appear in the State Configuration window. The currently selected state is highlighted on the state diagram.Chapter6, Branching and Decision Making,and Chapter7, Looping and Variables,provide examples of using the state diagram.Vision Builder AI Inspection InterfaceAs mentioned in the Vision Builder AI Configuration Interface section of this chapter, use the Vision Builder AI built-in Inspection Interface to deploy and run an inspection. Figure1-6 shows the built-in Inspection interface, which has three main areas: the Results panel, the Inspection Statistics panel, and the Display window.121In s pection S t a ti s tic s P a nel2Di s pl a y Window 3Re su lt s P a nelFigure 1-6. Vision Builder AI Built-in Inspection Interface。
B-1Cisco Application Visibility and Control User GuideA P P E N D I XBAVC Feature HistoryThis chapter addresses the following topic:•Feature History, page B-1Feature HistoryThe sections below describe highlights of new features and optimizations in recent AVC releases. They do not provide a full feature history of Cisco AVC.•AVC Features in Cisco IOS Releases, page B-1.•AVC Features in Cisco IOS XE Releases, page B-4.AVC Features in Cisco IOS ReleasesTable B-1AVC Feature History for Cisco IOS ReleasesFeatureDescriptionCisco IOS 15.5(3)TAdded support for Cisco 5000 Series routersAdded support for Cisco 5915, 5921, 5930, 5940 routers For more information, see: AVC Supported Platforms, page A-1Cisco IOS 15.5(2)TConfigurable export interval in ezPM Option to specify the cache timeout (exporting interval) in seconds. At this interval, the cached NetFlow records are exported.For more information, see: ezPM Configuration Options, page 4-14Cisco IOS 15.5(1)TEasy Performance Monitor (ezPM) enhancement:•Application Performance profile addedThe Application Performance profile is an improved form of the existing Application Experience profile. Application Experience remains available to support legacyconfigurations, but it is recommended to use the Application Performance profile for new configurations.For more information, see: Application Performance Profile, page 4-8Appendix B AVC Feature History Feature HistoryEasy Performance Monitor (ezPM) enhancement:•Improved identification of HTTP traffic Due to an improvement in NBAR (class-hierarchy feature), URL and Media traffic monitors can more accurately identify HTTP traffic.For more information, see: Easy Performance Monitor (ezPM), page4-4NBAR coarse-grain mode added NBAR provides two levels of application recognition: fine-grain and coarse-grain.Fine-grain mode provides NBAR's full application recognition capabilities. Coarse-grainmode offers a performance advantage by minimizing deep packet inspection, and can beused in scenarios where the full power of fine-grain classification is not required.For more information, see: NBAR2 Fine-grain and Coarse-grain Modes, page4-19 Cisco IOS 15.4(3)TEasy Performance Monitor (ezPM) enhancements:•Application Statistics profile added to Easy PerformanceMonitor•Added the cache-typeparameter to ezPMconfiguration The Application Statistics profile collects application statistics on all IPv4 and IPv6 traffic. It is a simpler profile than the Application Experience profile introduced in an earlier release.A new cache-type parameter enables specifying the type of cache for a monitor.For more information, see: Easy Performance Monitor (ezPM), page4-4Cisco IOS 15.4(1)TConvergence of Cisco AVC Architecture Across Platform Types The convergence of AVC architecture brings together the strongest AVC features from IOS and IOS XE platforms, providing powerful features and greater standardization of configuration tasks across different Cisco platforms.Metrics, such as ART, HTTP, and QoS metrics, that were available in earlier releases can now be configured in the same way as on Cisco IOS XE platforms. Additional metrics are also newly available for Cisco IOS.Metric Mediation Agent (MMA)The Metric Mediation Agent (MMA) introduces an enhancement to Cisco AVCinfrastructure, enabling addition of stateful and derived parameters with dynamicregistration. The MMA provides aggregation of connections, history, and alarms fromthe route processor. The aggregated data is exported at a lower speed than the data pathexport.For more information about the MMA, see:Metric Mediation Agent, page2-9QoS Metrics This Cisco AVC release provides new monitors for collecting metrics related to Qualityof Service (QoS) policy. Monitors can indicate:•Packets dropped on an interface, per QoS queue, due to a QoS policy that limitsresources available to a specific type of traffic.•Class hierarchy (indicating traffic priority) of a reported flow, as determined by theQoS policy map.For more information, see:QoS Metrics: Cisco IOS Platforms, page4-32Feature DescriptionCisco Application Visibility and Control User GuideAppendix B AVC Feature HistoryFeature HistoryEasy Performance Monitor (ezPM) Configuration Easy Performance Monitor “express” method of provisioning monitors. Easy perf-mon provides “profiles” that represent typical deployment scenarios. After a user selects a profile and specifies a small number of parameters, Easy perf-mon provides the remaining provisioning details. This release provides one profile, which includes five different traffic monitors. Future releases will provide additional options. For more information, see:Easy Performance Monitor (ezPM), page4-4Customizing attribute values See Customizing Attribute Values, page4-30.Export Spreading The export-spreading feature spreads out the export of records from the monitor cacheover a time interval, to improve collector performance. For more information, see:NetFlow/IPFIX Flow Monitor, page4-23IPv6 Support The Cisco AVC solution supports both IPv4 and IPv6.Features Available Prior to Cisco IOS 15.4(1)TUnified Solution Unifies the technologies of several reporting/control solutions. AVC technologiesinclude the configuration mechanism, metrics, and reports of such components as TCPperformance, and so on.Media Metrics For an overview of the metrics collected by Cisco routers, both for Cisco IOS and forCisco IOS XE, see:Cisco Application Visibility and Control Field Definition Guide for Third-PartyCustomersCisco Performance Agent (MACE) Metrics, including:•Application response (ART)•FNF•HTTP•QoS For information about using these metrics, see Configuring AVC to Monitor MACE Metrics.TCP Performance Metrics AVC includes several TCP performance measurements for traffic performance reporting. Cisco Prime Infrastructure The Cisco Prime Infrastructure management and reporting system is an integral part ofthe Cisco AVC solution and provides extensive management and reporting features,including provisioning the system, storing exported data, and generating reports. Feature DescriptionCisco Application Visibility and Control User GuideAppendix B AVC Feature History Feature HistoryAVC Features in Cisco IOS XE ReleasesTable B-2AVC Feature History for Cisco IOS XE ReleasesFeature DescriptionCisco IOS XE 3.15SAVC in L2 Transparent mode A router operating in layer 2 transparent mode (local switching) bridges two interfaces,transparently forwarding packets directly from one interface to the other, without anyother routing functionality. AVC can operate on a device configured in this mode,providing full AVC functionality on the bridged traffic.For more information, see: AVC Compatibility with Layer 2 Transparent Mode,page A-3Configurable export interval in ezPM Option to specify the cache timeout (exporting interval) in seconds. At this interval, the cached NetFlow records are exported.For more information, see: ezPM Configuration Options, page4-14Cisco IOS XE 3.14SEasy Performance Monitor (ezPM) enhancement:•Application Performance profile added The Application Performance profile is an improved form of the existing Application Experience profile. Application Experience remains available to support legacy configurations, but it is recommended to use the Application Performance profile for new configurations.For more information, see: Application Performance Profile, page4-8Easy Performance Monitor (ezPM) enhancement:•Improved identification of HTTP traffic Due to an improvement in NBAR (class-hierarchy feature), URL and Media traffic monitors can more accurately identify HTTP traffic.For more information, see: Easy Performance Monitor (ezPM), page4-4Configuring Multiple Policies on an Interface Multiple policies can be configured simultaneously on an interface, enabling additional flexibility in metrics collection.For more information, see: Configuring Multiple Policies on an Interface, page4-17NBAR coarse-grain mode added NBAR provides two levels of application recognition: fine-grain and coarse-grain.Fine-grain mode provides NBAR's full application recognition capabilities.Coarse-grain mode offers a performance advantage by minimizing deep packetinspection, and can be used in scenarios where the full power of fine-grain classificationis not required.For more information, see: NBAR2 Fine-grain and Coarse-grain Modes, page4-19Cisco Application Visibility and Control User GuideAppendix B AVC Feature HistoryFeature History Cisco IOS XE 3.13SEasy Performance Monitor (ezPM) enhancements:•Application Statistics profile added to Easy PerformanceMonitor•Added the cache-typeparameter to ezPMconfiguration The Application Statistics profile collects application statistics on all IPv4 and IPv6 traffic. It is a simpler profile than the Application Experience profile introduced in an earlier release.A new cache-type parameter enables specifying the type of cache for a monitor.For more information, see: Easy Performance Monitor (ezPM), page4-4Cisco IOS XE 3.12SNew sampling-rate option added to Easy Performance Monitor configuration.Added option of entering value of 1 for sampling-rate in Easy Performance Monitor configuration, to disable the sampler feature.For more information, see: Easy Performance Monitor (ezPM), page4-4AVC interoperability with GETVPN AVC interoperability with Group Encrypted Transport VPN (GETVPN).For more information, see AVC Interoperability with Cisco GET VPN, page2-16.Support for virtual template interface Support for configuring ezPM monitors on virtual template interfaces.For more information, see: Logical Interface and VPN Support in AVC, page A-2Additional support for FLEXVPN Added support for hub-to-spoke topologies.For more information, see: Logical Interface and VPN Support in AVC, page A-2 Performance improvements This release includes optimization changes that improve AVC performance.NBAR protocol pack hitless upgrade When updating an NBAR protocol pack or any NBAR configuration, the previous configuration remains active until the new configuration becomes active. This ensures that NBAR continues to classify traffic in the data path.Cisco IOS XE 3.11SNew metric added to track information about the interface being monitored The observation point id metric provides the physical port number of the interface to which the monitor is attached.Customizing attribute values See Customizing Attribute Values, page4-30.Interoperability with CiscoGET VPNSee NBAR Interoperability with Cisco GET VPN, page2-15.Cisco IOS XE 3.10SImproved Exporting Model An improved and optimized exporting configuration model includes:•Exporting only a single record per packet, reducing duplicate data.•Optimizing monitor assignment.•Filtering low-bandwidth traffic.•Per server reports.The improved exporting model is used as part of the Easy Performance Monitor profileincluded in this release.Feature DescriptionCisco Application Visibility and Control User GuideAppendix B AVC Feature History Feature HistoryEasy Performance Monitor Configuration Easy Performance Monitor “express” method of provisioning monitors. Easy perf-mon provides “profiles” that represent typical deployment scenarios. After a user selects a profile and specifies a small number of parameters, Easy perf-mon provides the remaining provisioning details. This release provides one profile, which includes five different traffic monitors. Future releases will provide additional options. For more information, see:Easy Performance Monitor (ezPM), page4-4Performance Improvements This release includes changes, such as an improved exporting model, predefinedmonitors, and MMA optimization, that improve performance by up to 30%.Parsing URI Address This release introduces the ability to parse URI addresses, enabling AVC to reportdepth1 of the URI and filter traffic according to that value. For more information, see:HTTP URI, page4-58Support for Records with 40 Fields This release introduces support for configuring records containing 40 fields.Cisco IOS XE 3.9SEnhanced Connection/Transaction Metrics Beginning with IOS XE release3.9S, Flexible NetFlow (FNF) monitors can report on individual transactions within a flow. This enables greater resolution for traffic metrics. For more information, see:Connection/Transaction Metrics, page4-43QoS Metrics This Cisco AVC release provides new monitors for collecting metrics related to Qualityof Service (QoS) policy. Monitors can indicate:•Packets dropped on an interface, per QoS queue, due to a QoS policy that limitsresources available to a specific type of traffic.•Class hierarchy (indicating traffic priority) of a reported flow, as determined by theQoS policy map.For more information, see:QoS Metrics: Cisco IOS XE Platforms, page4-37Cisco IOS XE 3.8SInteroperability with Cisco AppNav Cisco AppNav is the Wide Area Application Services (WAAS) diversion mechanism. Beginning with IOS XE release 3.8S, AVC provides statistics before and after the AppNav WAAS service controller (AppNav SC), as well as inspecting and reporting application information on optimized traffic.Unified Solution Unifies the technologies of several reporting/control solutions. AVC technologiesinclude the configuration mechanism, metrics, and reports of such components as TCPperformance, and so on.Metric Mediation Agent (MMA)The Metric Mediation Agent (MMA) is a new infrastructure element developed in theIOS XE 3.8 release to manage, correlate, and aggregate metrics from different metricproviders. MMA provides the following functions:•Controls traffic monitoring and filtering policy.•Correlates data from multiple metric providers (see Metric Providers, page2-9) intothe same record.•Aggregates metrics.•Supports history and alert functions. This requires sending the metrics records to theroute processor (RP) before exporting them to the management and reporting tools. Feature DescriptionCisco Application Visibility and Control User GuideAppendix B AVC Feature HistoryFeature HistoryFeature DescriptionTCP Performance Metrics This release adds several TCP performance measurements for traffic performancereporting.Interoperability with AppNav AppNav is the Wide Area Application Services (WAAS) diversion mechanism. AVC forIOS XE 3.8 provides statistics before and after the AppNav WAAS service controller(AppNav SC), as well as inspecting and reporting application information on optimizedtraffic.Packet Capture Cisco Embedded Packet Capture (EPC) technology performs packet capture.Cisco Prime Infrastructure The Cisco Prime Infrastructure management and reporting system is an integral part ofthe Cisco AVC solution and provides extensive management and reporting features,including provisioning the system, storing exported data, and generating reports.IPv6 Support The Cisco AVC solution supports both IPv4 and IPv6.Cisco Application Visibility and Control User GuideAppendix B AVC Feature History Feature HistoryCisco Application Visibility and Control User Guide。
Application-Level Checkpointing Techniques forParallel ProgramsJohn Paul Walters1and Vipin Chaudhary21Institute for Scientific ComputingWayne State Universityjwalters@2Department of Computer Science and EngineeringUniversity at Buffalo,The State University of New Yorkvipin@Abstract.In its simplest form,checkpointing is the act of saving a pro-gram’s computation state in a form external to the running program,e.g.the computation state is saved to afilesystem.The checkpointfilescan then be used to resume computation upon failure of the original pro-cess(s),hopefully with minimal loss of computing work.A checkpoint canbe taken using a variety of techniques in every level of the system,fromutilizing special hardware/architectural checkpointing features throughmodification of the user’s source code.This survey will discuss the varioustechniques used in application-level checkpointing,with special attentionbeing paid to techniques for checkpointing parallel and distributed ap-plications.1IntroductionWhen programmers seek to write code resilient to failures,the typical course of action is to resort to application checkpointing.Application checkpointing is the act of saving the state of a computation such that,in the event of failure,it can be recovered with only minimal loss of computation.This is especially useful in areas such as computational biology where it is not unusual for an application to run for many weeks before completion[1].In such cases it is possible for the program’s running time to exceed the hardware’s failure rate.If the application cannot be recovered from some intermediate point in the computation,it is reasonable to expect that the application may neverfinish.A high-level overview of the necessary components of checkpointing could be written as:1.Interrupt the computation.2.Save the address space to afile.3.Save the register set to afile.This research was supported in part by NSF IGERT grant9987598and the Institute for Scientific Computing at Wayne State University.2Other attributes could also be saved,including sockets,openfiles,and pipes. But the items listed above suffice to accurately restore a computation.The problem is compounded when considering clusters of machines,all of which fail independently at some given rate.If the application makes use of the entire cluster,then the failure of a single machine will halt progress of the entire application.In these cases programmers would like to make use of application checkpointing schemes in the distributed environment,but the problem can no longer be solved by simply taking a snapshot of each process as there may be messages in transit that none of the individual processes would lay claim to.Consider also the case of grid computing.In this case,all of the complexities of computing in the distributed manner apply(messages in transit,synchronizing multiple processes)but new problems arise as well.In a grid environment indi-vidual machines may be under the control of different administrative domains. Indeed the identity of any particular node responsible for running a program-mer’s code may be unknown to the programmer.In such cases,checkpoints cannot simply be saved to localfilesystems,but must be funneled to a known location.Furthermore,the heterogeneous nature of the grid makes it exceedingly possible that machines of different architectures are allocated to the program-mer upon resuming the application.One solution to this problem would be to mandate a certain architecture for the application.While such a solution would work,a better solution would handle checkpoint resumption on heterogeneous architectures.To address the problems above,a series of checkpoint techniques have been developed that provide programmers with varying degrees of checkpointing trans-parency.The four major categories are as follows[2,3]:1Hardware-level,additional hardware is incorporated into the processor to save state[3].2Kernel-level,the operating system is primarily responsible for checkpointing running programs[4–6].3User-level,a checkpointing library is linked into a program that will be re-sponsible for checkpointing the program independent of the programmer[7, 8].4Application-level,the checkpointing code is inserted directly into the appli-cation by a programmer/preprocessor.This survey will present the major techniques used in application-level check-pointing with special attention being paid to distributed/grid applications.In figure1,a taxonomy of common application-level checkpointing schemes is pre-sented,including a classification of the specific implementations discussed in this survey.A related problem is the issue of process and thread migration[9–11,2].While this survey does not specifically address the issue of process migration,it is worth noting that many of the challenges associated with application checkpointing arise in the case of process migration as the two problems are nearly identical in nature.3S i m S n a p /C 3C −s h a r e d 3C −M P I 3X C A T 3S in g l e −T h r e a d D i s t r i b u t e d M e m o r yApplication−LevelK a r a b l i e hM ig T h r e a d p o r c h S h a r e d−Me mo ry Fig.1.A taxonomy of application-level checkpointing schemes.2Application-Level CheckpointingApplication-level checkpointing represents the highest degree of abstraction from the process itself.Unlike the more transparent techniques of kernel-level checkpointing and user-level checkpointing,application-level checkpointing re-quires more programmer interaction.It would seem then that application-level schemes are at a disadvantage when compared to their user-level and kernel-level counterparts.But application-level checkpointing carries with it several distinct advantages over the lower-level techniques,including its overall portability.2.1IntroductionThe essence of application-level checkpointing is to place the checkpointing burden on the application itself,rather than the operating system or a set of user-level libraries that are linked into the program.In order to accomplish the self-checkpointing,the program source must be modified to support checkpoint-ing.Unlike other techniques (such as user-level checkpointing),application-level checkpointing seeks to abstract the application state to the application-level.Thus,the process state is not saved through low-level system calls.Instead,compiler assistance (typically in the form of a pre-processor)is used in a tech-nique called “code instrumentation”[12,1,13–19].Ideally,the use of application-level checkpointing would not require addi-tional effort from the programmer.That is,the programmer should not be held responsible for adding the checkpointing code himself.To avoid this,the pre-processor scans the original code provided by the programmer,inserts the nec-essary checkpointing constructs,and outputs the checkpoint-enabled code.The4new code should function no different than the original,with the exception of the addition of the checkpointing functionality.As mentioned above the application-level code must represent the low-level program status(program counter,etc.)in terms of higher level constructs.For instance,application-level stacks are implemented to keep track of a program’s place when nested inside function calls.Each time the application enters a func-tion,the function ID(another application-level construct)is pushed onto the checkpointing stack.Similarly,when an application leaves a function,the func-tion ID is removed from the checkpointing stack.Since the application does not make use of the low-level representation of the process,checkpointing code must be inserted such that a program simply exe-cutes the checkpointing code at appropriate times during its execution.Of course, this means that the code can no longer be checkpointing at arbitrary points(via interruption).Furthermore,when the application is restored the application-level scheme cannot simply restore the program-counter to return the application to the appropriate point.Instead,a series of jump statements are used to allow the application to simply initialize variables but skip the checkpointed computations in order to recover from a failure.While the above may seem to be a disadvantage to the application-level scheme,such a technique allows for three distinct advantages:language inde-pendence/portability,checkpoint size,and checkpoint heterogeneity.We now consider each of these in turn.At the user-level,the checkpointing schemes rely heavily on system calls provided by the operating system in order to gain access to low-level process information.Furthermore,these system calls are not necessarily available in all languages.Most user-level techniques appear to assume that the“C”language is the only one used by programmers,including the area of scientific comput-ing.This doesn’t mean that user-level techniques cannot be used in different languages,but that the techniques must be adapted depending on the envi-ronment.Application-level checkpointing schemes,on the other hand,have the potential to be implemented independent of the language provided that the basic language constructs are present.The checkpoint size is also of great concern when checkpointing large ing standard user-level checkpointing techniques or kernel-level tech-niques typically save nearly the entire process state including data that need not be saved in order to recover the application.For example,in[1]the authors note that in“protein-folding applications on the IBM Blue Gene machine,an application-level checkpoint is a few megabytes in size whereas a full system-level checkpoint is a few terabytes.”Of course the example just presented is rather drastic,but the advantage remains clear-application-level checkpointing has the capacity to dramatically reduce checkpoint size.The advantage to smaller checkpoint sizes is even more clear when checkpointing grid-based applications.The third major advantage is that of heterogeneity.This too is particularly advantageous in grid-enabled applications.In such an environment,one may not have access to sufficient homogeneous resources.In fact,one may not even have5 access to the same grid resources in subsequent application runs.For this reason, heterogeneous checkpointing becomes a distinct advantage.It potentially allows a programmer to take advantage of many more resources that would otherwise go unused.But the real advantage occurs when a node fails.In such a case it may happen that the only available nodes to replace the failed one are heterogeneous to the failed node.In such a case,using a heterogeneous checkpointing scheme,a new node can be selected without regard for its system software or architecture. Furthermore,application-level schemes allow a larger portion of the application to be checkpointed and restored to heterogeneous systems,including pointers.Of course,there are disadvantages to the application-level technique.For example,applications can only be checkpointed if their source code is available to the pre-processor.Another shortcoming to application-level checkpointing is the difficulty in representing a running program’s state.As discussed previously,an application-level technique cannot depend on low-level system calls to discern a running program’s state.Similarly,multi-threaded applications must take special care in order to ensure thread synchrony,given that multiple threads will not reach a checkpoint simultaneously.Thefinal major shortcoming of the application-level technique relates to the issue of heterogeneity.While the application-level scheme may naturally lend itself to portability,one major problem is the manner in which data should be represented.Since different architectures represent data types in different sizes (not to mention different endianness),a technique to convert data on one ar-chitecture to meaningful data on another is needed.One standard solution is to use a machine independent technique,the classic example being XDR(External Data Representation)[20].Some newer application-level schemes have used an XML-based format as well[21].The major shortcoming to using an intermediate format technique is that all data must be converted twice,once during the check-point and again during the restore.Depending on the amount of data that needs converting as well as the frequency at which checkpoints are taking,this extra conversion could be significant.Another technique is to appeal to the lowest pre-cision in the group[22]or to save all checkpoint data in a precision that is higher than that of any of the machines within the group.Both of these techniques suf-fer from the disadvantage that a conversion is required,even if the checkpoint is being restored to the machine on which it was taken.In addition,the technique of saving in the lowest precision of the group requires knowledge of the group members before checkpointing takes place.In many situtations,particularly grid scenarios,this information may be unavailable.And saving in a precision that is higher than any member of the group not only requires knowledge of the group, but would also lead to inflated checkpoint sizes.A third technique to data conversion seeks to eliminate the conversion step altogether if at all possible.Ine one such technique,called“receiver makes right,”the originator of the data simply checkpoints the data in its own precision.This technique has been used in[14]as well as in PVM[23].In this case,the receiver is charged with ensuring that the data conversion takes place when necessary. In many cases,such as when a checkpoint is restored to the same machine on6which it was taken,the data conversion can be skipped altogether.In the case of large checkpoints,the time savings could be significant.Should the receiver’s architecture differ such that data conversion is necessary,the checkpoint data can be converted.At the outset,the“receiver makes right”scheme seems like the logical choice. However,data conversion issues arise in the case of architecture differences.For example,a32bit data type can be adapted tofit in to a64bit data type on another architecture with relative ease.But how to handle the case of adapting a64bit data type to a32bit data type is non-trivial.In such a case,the possibility exists that the conversion simply cannot proceed as the resulting inaccuracy would be unacceptable.We next consider three types of application-level checkpointing techniques: single-threaded,multi-threaded,and cluster/grid-enabled application-level check-pointing.Each of these categories carries with it its own difficulties,with each building upon the previous.We begin with single-threaded checkpointing.2.2Single-Threaded Application-Level CheckpointingIn[17]a technique similar to PORCH[22]is discussed.The goal is to provide a heterogeneous checkpointing scheme capable of checkpointing“real”programs, including pointers and unions,both of which are known to cause portability problems.They make use of a pre-processor to transform a programmer’s code into a functionally similar,but checkpointable,program.To address the data conversion issues,[17]uses a technique similar to the “receiver makes right”method.Data is always saved in the accuracy of the ma-chine on which the checkpoint is performed.They force the restoring process tofirst determine its own accuracy and then perform any necessary conversion. Each process can determine its accuracy at runtime,which they claim makes their technique portable to any architecture.The accuracy of a particular archi-tecture is determined by exploiting properties of computer arithmetic developed by[24].There are several different techniques used to save the state of variables in[17].Global variables are saved using a series of macros that are generated by the pre-processor.To handle stack variables,the pre-processor encapsulates all local(stack)variables within a particular scope inside a structure.Just as in the case of the global variables,a series of macros are generated in order to facilitate saving the particular variable,which in this case is a structure of variables.The program itself will likely make calls to additional functions.In order to facilitate rebuilding the execution stack a data structure called the“state stack”is used.Each element of the“state stack”contains threefields.Thefirst is a pointer to the structure containing the local variables.The second is a pointer to a function(generated by the pre-processor)that is capable of saving the state of the local variables.Thefinalfield is a label to the callout position of the current scope.The callout of a function is simply the point at which a new function is called from the current scope[17].7 In order to facilitate the restoring of an application,an application-level ab-straction of the program counter is needed.This is accomplished by making use of the labels described above.Before each function call(with the exception of checkpoints)a label is inserted.A label is also inserted after a checkpoint[17]. This label is used in the nodes that are pushed onto the“state stack”described above.Such a technique allows a restored application to skip unnecessary com-putation.Upon restoration,the function simply rebuilds its state stack.This is done by restoring the local variables on each node of the state stack and then skipping directly to the next function call(using the labels).Function calls are then entered in the correct order and their variables restored accordingly.One common difficulty in application checkpointing,particularly heteroge-neous checkpointing,is how to handle pointers and other dynamically allocated data.Karablieh,Bazzi,and Hicks solve this problem by the introduction of a memory refractor,which essentially introduces an additional level of indirec-tion to achieve portability[17].The memory refractor itself is an array of data structures and is divided into three parts including the global variables,stack, and heap variables[17].All variables,including non-pointers are kept in the memory refractor.In doing so,the authors are able to effectively abstract the specific memory location from the particular variable by introducing an index for each variable.Pointers then point to the memory refractor entry for a vari-able,rather than a specific memory location.This,according to[17]allows for portable pointers as well as rebuilding pointers upon recovery.Karablieh,Bazzi and Hicks acknowledge that this is not necessarily the most efficient scheme,but suggest that the portability and heterogeneity of their technique outweighs its inefficiency.In[18]a novel use for application-level checkpointing is discussed.Rather than exploiting application-level checkpointing for its fault-tolerance and load-balancing characteristics,Szwed et al.describe its use in fast-forwarding appli-cations towards architectural simulation.One can consider fast-forwarding,in their sense,to be roughly equivalent checkpointing/restarting.The difference in this case is that application is restored to a simulator from natively executing code.This acts roughly as an accelerator where researchers can use native ex-ecution to“fast-forward”to the more interesting code segments.At a certain point in the code a checkpoint is then taken which is then restored to a sim-ulator.The simulator then continues the computation without modification to the simulator itself.According to[18],such a technique is useful for performing time-consuming cycle accurate simulations on only a particular code segment of interest.To perform the checkpointing and migration necessary for the simulator, Szwed et al.make use of the Cornell Checkpoint Compiler(C3)[25,26].C3 consists of two components:a source-to-source compiler(pre-processor)and a runtime library.As would be expected,the pre-processor is used to convert the source code of an application into a semantically equivalent version,capable of self-checkpointing[18].The runtime library includes checkpointable versions of several key“C”library functions.8The C3system also makes use of a“position stack”that acts similar to the “state stack”used in[17].In[18],a label is still inserted after every checkpoint and before every function that might lead to a checkpoint.The authors perform a call-graph analysis in order to determine which function calls could lead to a checkpoint.The most unique aspect of C3is the method used to restore variables and pointers.C3depends on variables being restored to their original memory lo-cations in order to properly restore pointers.To do this,C3contains its own versions of the standard“C”memory functions.The most notable of these is the“memory allocator.”In this case the memory allocator not only ensures that data is restored to its original address,but also manages heap data in the memory pool.The memory pool is what allows the allocator to restore pointers. Upon restart,the allocator requests from the operating system that the exact same pool of memory be allocated to the process.In doing so,variables can be simply copied from the checkpointfile back into memory without requiring any additional pointer indirection such as in[17].2.3Shared-Memory Application-Level CheckpointingOf course,application-level checkpointing is not limited to single-threaded applications.Indeed there are many different application-level checkpointing schemes targeted at shared memory applications.Here we will discuss two such techniques,a variation on the C3scheme,and MigThread.These techniques rep-resent two different approaches to the application-level checkpointing scheme as well as different assumptions related to the underlying architectures.We begin with MigThread[27].In this case,Checkpoints are inserted by the programmer,and it is the programmer’s responsibility to ensure program correctness when executing the checkpoint.That is,in order to ensure that an accurate global state is checkpointed,the programmer should enclose the checkpoint in any necessary barriers.The standard technique of using a pre-processor as well as a runtime support module is used in MigThread as well.What’s unique about MigThread is its heterogeneity and its ability to check-point/restart individual threads on remote(possibly heterogeneous)machines. The key to its heterogeneity is its data conversion technique,dubbed“course-grain tagged receiver makes right”(CGT-RMR).This technique allows the sender(or checkpoint initiator)to save the checkpoint data in its own native format.Any conversion that needs to be done will be performed by the receiver upon restarting the checkpoint.This reduces the number of conversions required, possibly to zero if the architecture of the restored checkpoint is the same as when the checkpoint was taken.Data is identified by a series of tags that are generated automatically by the pre-processor and inserted into the user’s source code.One advantage to the technique used by MigThread is that is can handle both pointers and dynamic memory without requiring the use of a memory refractor as in[17].Variables are collected into two different structures,depending on whether they’re pointers or non-pointers.This is done at both a global level and at the function level.Upon restoring a checkpoint,the pointers within the9 pointer structure can be traced and updated according to their new memory locations.As mentioned above,MigThread also supports the checkpointing of individual threads.This is done by invoking the application on the target/restore machine and indicating that a particular thread should be restored.The thread speci-fied through a configurationfile is then restored independent of any additional threads.This can be particularly useful in load balancing applications.A variation on the C3system that is capable of checkpointing shared memory systems is dedescribed in[1].In particular,this system is designed to operate using the OpenMP multi-threading compiler directives[28].In the shared memory implementation of C3,variables are saved similarly to the technique described in[18].Most importantly,the memory pool is still used in order to restore pointer variables to their original locations.This has important implications,as the authors note.In particular,the C3checkpoints are generally not portable to heterogeneous architectures due to the fact that the C3system performs no data conversion,not even converting between little and big endian.The most interesting features of C3system are its synchronization constructs. The problem is that calls to checkpoint a thread are hints and may not occur each time a thread comes across a checkpoint.Given that no assumptions can be made as to the rate at which threads progress it is possible for two or more threads to deadlock at a checkpoint.For example,consider a two-threaded application where thefirst thread reaches an application barrier while the second reaches a checkpoint barrier.In such a scenario,neither thread will progress as thefirst is waiting for the second at the application barrier,and the second is waiting for thefirst at a checkpoint barrier.The solution to this problem,according to[1]is to ensure that a checkpoint never crosses an application barrier.In order to do this,C3intercepts calls to the OpenMP API and introduces a global checkpointFlag variable.When a thread wishes to take a checkpoint itfirst sets the checkpointFlag variable to true and then proceeds to thefirst checkpoint barrier.Threads that are waiting at an application barrier poll the checkpointFlag variable.If theyfind that it is set to true,the threads waiting at the application barrier immediately begin a checkpoint before returning to the application barrier.Locks are another problem that must be addressed.The problem is that one thread may hold a mutex and wish to checkpoint,while a second thread may wish tofirst aquire the mutex before checkpointing.In order for the second thread to perform the checkpoint,thefirst thread must release its mutex.A proper checkpoint library should ensure that when the application is restored the mutex will be returned to thefirst thread.To ensure that this occurs,threads are charged with maintaining a table of their own mutexes.Upon restore,each thread checks its table and releases any mutexes that it should not hold.102.4Grid/Cluster Application-Level CheckpointingWe now turn to thefinal type of application-level checkpointing,in particu-lar checkpointing for cluster and grid-based applications.There are a variety of techniques that have been used in order to perform checkpointing in distributed systems,most of which focuses on message-passing systems.In particular,[29] presents a survey of many techniques that are applicable both to user-level and application-level checkpointing.In this section,two typical coordinated check-pointing algorithms will be discussed.But it is worth noting that,according to[29],other techniques also exist including message logging.In[30]an addi-tional technique is used that essentially turns a distributed system into a shared memory system.The advantage of this technique is that techniques used to checkpoint parallel or shared-memory systems can also be adapted.The disad-vantage is that most distributed systems do not allow a task to read and write to the remote address space of another task.Thefirst checkpointing protocol for message passing systems that will be examined again utilizes the C3system.This time,however,the focus is not on the C3system itself,but rather the protocol used to guarantee an accurate and consistent global state for MPI programs[26].A coordinated checkpointing protocol is one in which processes checkpoint together,typically by utilizing a initiator that is responsible for coordinating the protocol.Non-coordinated checkpointing protocols are also possible,some of which are described in[29]. The main problem with the non-coordinated technique is the possibility of their experiencing the“domino effect”due to inconsistent global states.The“domino effect”can lead to the failure of every checkpoint,eventually requiring that the application be restarted[31].The coordinated technique used in C3uses an initiator that is responsible for initiating and coordinating the checkpoint protocol.In C3the initiator is simply process0.When the application is instrumented with the C3system more checkpoints are inserted than may be needed.It is therefore the initiator’snecessary.responsibility to begin the checkpoint whenThe primary problem with checkpointing message-passing systems is in deal-ing with both late and early messages.This is a problem in application-level。