Elastic Fabric Adapter (EFA)
Q: Why should I use EFA?
EFA brings the scalability, flexibility, and elasticity of cloud to tightly-coupled HPC applications. With EFA, tightly-coupled HPC applications have access to lower and more consistent latency and higher throughput than traditional TCP channels, enabling them to scale better. EFA support can be enabled dynamically, on-demand on any supported EC2 instance without pre-reservation, giving you the flexibility to respond to changing business/workload priorities.
Q: What types of applications can benefit from using EFA?
High Performance Computing (HPC) applications distribute computational workloads across a cluster of instances for parallel processing. Examples of HPC applications include computational fluid dynamics (CFD), crash simulations, and weather simulations. HPC applications are generally written using the Message Passing Interface (MPI) and impose stringent requirements for inter-instance communication in terms of both latency and bandwidth. Applications using MPI and other HPC middleware which supports the libfabric communication stack can benefit from EFA.
Q: How does EFA communication work?
EFA devices provide all ENA devices functionalities plus a new OS bypass hardware interface that allows user-space applications to communicate directly with the hardware-provided reliable transport functionality. Most applications will use existing middleware, such as the Message Passing Interface (MPI), to interface with EFA. AWS has worked with a number of middleware providers to ensure support for the OS bypass functionality of EFA. Please note that communication using the OS bypass functionality is limited to instances within a single subnet of a Virtual Private Cloud (VPC).
Q: Which instance types support EFA?
EFA is currently available on the C5n.18xlarge, and P3dn.24xl, and I3en.24xl instance sizes. Support for more instance types and sizes being added in the coming months.
Q: What are the differences between an EFA ENI and an ENA ENI?
An ENA ENI provides traditional IP networking features necessary to support VPC networking. An EFA ENI provides all the functionality of an ENA ENI, plus hardware support for applications to communicate directly with the EFA ENI without involving the instance kernel (OS-bypass communication) using an extended programming interface. Due to the advanced capabilities of the EFA ENI, EFA ENIs can only be attached at launch or to stopped instances.
Q: What are the pre-requisites to enabling EFA on an instance?
EFA support can be enabled either at the launch of the instance or added to a stopped instance. EFA devices cannot be attached to a running instance.
Q: Why should I use NICE DCV?
NICE DCV is a graphics-optimized streaming protocol that is well suited for a wide range of usage scenarios ranging from streaming productivity applications on mobile devices to HPC simulation visualization. On the server side, NICE DCV supports Windows and Linux. On the client side, it supports Windows, Linux, and MacOS as well as provides a Web Client for HTML5 browser based access across devices.
Q: Do I need to download a native client to use NICE DCV?
No. NICE DCV works with any HTML5 web browser. However, native clients support additional features such as multi-monitor support, with the Windows native client also supporting USB support for 3D mice, storage devices and smart cards. For workflows needing these features, you can download NICE DCV native clients for Windows, Linux, and MacOS here.
Q: What types of applications can benefit from using NICE DCV?
While NICE DCV's performance is application agnostic, customers observe a perceptible streaming performance benefit when using NICE DCV with 3D graphics-intensive applications that require low latency. HPC applications like seismic and reservoir simulations, computational fluid dynamics (CFD) analyses, 3D molecular modeling, VFX compositing, and Game Engine based 3D rendering are some examples of applications wherein NICE DCV's performance benefit is apparent.
Q: Which instance types support NICE DCV?
NICE DCV is supported on all Amazon EC2 x86-64 architecture based instance types. When used with NVIDIA GRID compatible GPU instances (such as G2, G3, and G4), NICE DCV will leverage hardware encoding to improve performance and reduce system load.
Enabling NICE DCV
Q: Do I need to install a NICE DCV license server when using NICE DCV on Amazon EC2?
No, you do not need a license server to install and use the NICE DCV server on an EC2 instance. However, you need to configure your instance to guarantee access to an Amazon S3 bucket. The NICE DCV server automatically detects that it is running on an Amazon EC2 instance and periodically connects to the Amazon S3 bucket to determine whether a valid license is available. For further instructions on NICE DCV license setup on Amazon EC2, refer to the document here.
Q: Can I enable NICE DCV on a running instance?
Yes. NICE DCV is a downloadable software that can be downloaded and installed on running sessions. Link to the NICE DCV download page is here.
Q: What Windows and Linux distributions does NICE DCV server support?
NICE DCV server's OS support is documented here.
Using NICE DCV
Q: How can I monitor NICE DCV’s real-time performance?
NICE DCV clients have tool bar ribbon displayed on the top of the remote session when not in full screen mode. Click on Settings >> Streaming Mode. This pops up a window allowing users to choose between “Best responsiveness (default) and “Best quality”. Click on “Display Streaming Metrics” at the bottom of the pop-up window to monitor real-time performance framerate, network latency and bandwidth usage.
Q: How do I manage the NICE DCV server?
The NICE DCV server runs as an operating system service. You must be logged in as the administrator (Windows) or root (Linux) to start, stop, or configure the NICE DCV server. For more information refer to the document here.
Q: What port does NICE DCV communicate on?
By default, the NICE DCV server is configured to communicate over port 8443. You can specify a custom TCP port after you have installed the NICE DCV server. The port must be greater than 1024.
Q: How do I enable GPU sharing on Linux USING NICE DCV?
GPU sharing enables you to share one or more physical GPUs between multiple NICE DCV virtual sessions. Using GPU sharing enables you to use a single NICE DCV server and host multiple virtual sessions that share the server's physical GPU resources. For more details on how to enable GPU sharing refer to the document here.
Q: Is NICE DCV's GPU sharing feature available in Windows?
No, NICE DCV GPU sharing is only available on Linux NICE DCV servers.
Q: What are virtual sessions and how do I manage them?
Virtual sessions are supported on Linux NICE DCV servers only. A NICE DCV server can host multiple virtual sessions simultaneously. Virtual sessions are created and managed by NICE DCV users. NICE DCV users can only manage sessions that they have created. The root user can manage all virtual sessions that are currently running on the NICE DCV server. For instructions on managing virtual sessions, refer to the document here.