Amazon Web Services 한국 블로그

AWS 스케일 아웃 컴퓨팅을 활용한 EDA 워크로드 확장 기법

EDA (Electronic Design Automation) 애플리케이션을 사용하는 반도체 및 전자 회사는 AWS에서 제공하는 무한한 컴퓨팅, 스토리지 및 기타 리소스를 활용하여 제품 개발의 수명 주기 및 출시 기간을 크게 단축할 수 있습니다. 이 블로그 게시물에서는 EDA 애플리케이션을 30,000개 이상의 코어로 확장할 수 있는 환경 구축하기 위한 아키텍처 및 시스템 수준의 지침을 제공합니다.

EDA 워크로드에는 컴퓨팅 클러스터, 컴퓨팅 노드에 작업 분배를 조정하는 스케줄러 및 고성능 공유 파일 시스템이 필요합니다. 일반적으로 공유 파일 시스템은 EDA 워크로드 사용 사례, 설계 크기 및 총 코어 수에 따라 500MB/초에서 10Gb/초까지 다양한 I/O 처리 요구 사항을 유지해야 합니다. EDA 인프라 스택의 다른 중요한 구성 요소로는 라이센스 관리, 원격 데스크톱 및 시각화 뿐만 아니라 ID 및 액세스 제어, 예산 책정, 모니터링 등의 사용자 관리 등이 있습니다.

활용 서비스 및 솔루션 개요

AWS에서 EDA 환경을 빠르게 시작할 수 있도록 AWS에서 공식 AWS 솔루션인 스케일-아웃 컴퓨팅(Scale-Out Computing (이하 SOCA)을 사용하였습니다. 이 솔루션은 Amazon Elastic Compute Cloud (EC2 스팟 및 EC2 온 디맨드 인스턴스), Amazon Simple Storage Service (S3), Amazon EFS (Elastic File System) 및 Lustre용 Amazon FSx를 비롯한 많은 AWS 서비스를 활용합니다.

AWS의 스케일-아웃 컴퓨팅 (SOCA)
SOCA는 고객이 컴퓨팅 집약적인 워크플로우를 위해 다중 사용자 환경을 보다 쉽게 배포하고 운영할 수 있도록 지원하는 공식 AWS 솔루션입니다. 이 솔루션은 클러스터 배포, 자동화된 클러스터 프로비저닝 오케스트레이션을 제공하며, 다양한 컴퓨팅 리소스와 빠른 네트워크 백본, 거의 무제한의 스토리지, 그리고AWS와 직접 통합된 예산 및 비용 관리까지 포함합니다.

Amazon Elastic Compute Cloud (Amazon EC2)
Amazon EC2 는 클라우드에서 안전하고 크기 조정 가능한 컴퓨팅 파워를 제공하는 웹 서비스입니다. Amazon EC2는 최신 컴퓨팅, 스토리지 및 네트워킹 기술을 기반으로 구축되고 고성능 및 보안을 위해 설계된 가장 광범위하고 심층적인 인스턴스를 제공합니다. 내결함성 EDA 워크로드를 실행할 때 Amazon EC2 스팟 인스턴스를 사용하면 AWS 클라우드에서 사용되지 않은 EC2 용량을 활용할 수 있습니다. 스팟 인스턴스는 온디맨드 인스턴스 요금에 비해 최대 90% 할인된 가격으로 사용할 수 있습니다. AWS는 또한 Amazon EC2 예약 인스턴스세이빙 플랜을 제공합니다. 이 플랜은 1년 또는 3년 약정 기간 동안 사용한 약정 대가로 온디맨드 인스턴스 요금에 비해 상당한 할인 혜택을 제공합니다.

Amazon Simple Storage Service (Amazon S3)
EDA 워크플로우는 라이브러리, 설계 도구 및 설계 요구 사양과 같은 영구 데이터의 경우Amazon S3를 활용할 수 있습니다. Amazon S3는 확장성, 데이터 가용성, 보안 및 성능을 업계 최고로 제공하는 객체 스토리지 서비스입니다. Amazon S3는 99.999999999% 의 내구성을 위해 설계되었으며 전 세계 기업에서 수백만 개의 애플리케이션을 위한 데이터를 저장하고 있습니다. Amazon EC2와 Amazon S3 간의 트래픽은 최대 25Gbps의 대역폭을 활용할 수 있으며 교차 리전 복제 및 데이터 계층화를 사용할 수도 있습니다 (자세한 내용은 Amazon S3 기능Amazon S3 FAQ 참조).

Amazon Elastic File System (Amazon EFS)
Amazon EFS는 AWS 클라우드 서비스 및 온-프레미스 리소스와 함께 사용할 수 있도록 단순하고 확장 가능하며 유연한 완전 관리형 NFS 파일 시스템을 제공합니다.Amazon EFS는 AWS에서 환경을 구축할 때 홈 디렉토리 및 자동화 스크립트에 사용되는 파일 시스템입니다. 이 제품은 애플리케이션 중단 없이 필요에 따라 페타 바이트까지 확장할 수 있도록 구축되었으며, 파일 추가 및 제거에 따라 자동으로 확장되거나 축소되므로 용량 증가를 적용하기 위해 용량을 프로비저닝하고 관리할 필요가 없습니다.

Amazon FSx for Lustre (Amazon FSx for Lustre)
EDA 도구에 고성능 공유 파일 시스템이 필요한 경우, Lustre용 FSx는 HPC(High Performance Computing) 및 EDA 워크로드에 최적화된 완전 관리형 고성능 파일 시스템입니다. FSx for Lustre 는 쉽게 Amazon S3와 원활한 통합과 Amazon S3에 데이터를 지속적으로 저장함으로 비용 절감 효과를 제공하며, 지연시간이 밀리 세컨드 레이턴시 미만이고 초당 수백 기가바이트의 처리량, 그리고수백만 IOPS의 데이터 처리를 위해 컴퓨팅 인스턴스에 마운트할 수 있는 고성능 POSIX 파일 시스템을 제공합니다.

솔루션 배포

배포를 위해 다음 단계를 수행합니다.

  1. SOCA 솔루션 사용하여 EDA 수행 가능 인프라 스택 구성 및 런
  2. Amazon Machine Image (AMI) 지정
  3. 여러 라이센스 서버를 설정하는 옵션을 사용하여 라이센스 서버 설정
  4. Amazon S3 버킷 생성하여 테스트 케이스 업로드하고 공유 파일 시스템을 설정
  5. NICE DCV 원격 데스크톱 세션에 연결
  6. EDA 응용 프로그램 설치

단계 1: SOCA 솔루션 사용하여 EDA 수행 가능 인프라 스택 구성 런치
SOCA(Scale-Out Computing on AWS) 솔루션은 공식 AWS 솔루션 페이지에서 원클릭 설치 관리자를 사용하여 배포할 수 있으며 이는 AWS CloudFormation에서 배포가 시작됩니다. 이 솔루션은 고도로 사용자 구성이 가능하며 EC2 인스턴스에서 실행되는 스케줄러로 핵심 기능을 사용할 수 있습니다. 그런 다음 AWS CloudFormationAmazon EC2 Auto Scaling을 활용하여 스케일아웃 컴퓨팅 작업 및 원격 시각화와 같은 사용자 작업을 실행하는 데 필요한 리소스를 자동으로 프로비저닝합니다. 세션을 통해 NICE DCV를 사용할 수 있습니다.

AWS CloudFormation 파라미터 화면에서 다음 항목을 제공해야 합니다:

파라미터 비고 추천
스택 이름 스택 이름은 영문자(A-Z, a-z), 숫자(0-9), 그리고 대쉬(-)를 포함할 수 있습니다 스택을 위한 이름이며, 모두 대문자 표기는 지양
S# bucket with your installer 인스톨 파일을 업로드 한 S3 버킷의 이름 디폴트 값
S3 folder where you uploaded the SOCA files SOCA를 업로드 한 S3 폴더의 이름 디폴트 값
Linux Distro CentOS 사용자 주의 사항 > 하기 링크의 구독 필요https://thinkwithwp.com/marketplace/pp/B00O7WM7QW amazonlinux2
(Optional) Have your own AMI? 자체 AMI를 사용하는 경우 기본 OS를 지정해야합니다 (위 참조).
Instance type for your master host 스케줄러에 사용할 인스턴스 유형 선택 m5.large
Create your new VPC VPC에 사용할 CIDR (/16) 블록 (예: 10.0.0.0/16) 을 선택합니다. 10.0.0.0/16
What’s your IP? 기본 IP는 스케줄러에 직접 SSH가 허용됩니다. 0.0.0.0/0은 모든 액세스를 의미합니다.자신의 IP/서브넷 (자신의 IP의 경우 x.x.x.x/32 또는 범위의 경우 x.x.x.x/24로 변경하고 싶을 것입니다.x.x.x.x를 자신의 공용 IP로 바꿉니다. https://ifconfig.co/ 과 같은 도구를 사용하여 공용 IP를 얻을 수 있습니다.) 이것을 제한적으로 유지하십시오! https://ifconfig.co/ 과 같은 도구를 사용하여 공용 IP를 얻을 수 있습니다.이것은 스케줄러와 로드 밸런서에 대한 SSH 및 HTTPS 액세스를 제한하는 데 사용됩니다.또한 솔루션에서 배포한 Amazon ElasticSearch 도메인 및 Kibana 대시보드에 대한 액세스를 제한하여 작업 및 컴퓨팅 노드에 대한 클러스터 분석을 제공합니다.
What’s your SSH keypair? 스케줄러에 SSH에 사용되는 기본 SSH pem 키
Default LDAP user 기본 LDAP 사용자의 사용자 이름 기본 관리자 사용자 이름
Password for your
default LDAP user
최소 5자문자로 시작해야 합니다. 특수 문자 허용:!#@+_^ {} [] () 기본 관리자 사용자의 암호

CloudFormation 스택을 배포하는 데 약 20분 정도 소요되고 스케줄러 노드가 구성을 완료하는 데 추가로 20분이 소요됩니다. 구성이 완료되면 CloudFormation 스택 -> 출력 -> WebuserInterface에서 HTTPS 링크를 사용하여 AWS 웹 인터페이스에서 스케일 아웃 컴퓨팅에 액세스할 수 있어야 합니다.

스크린샷과 함께 SOCA(Scale-Out Computing on AWS, 이하SOCA)을 배포하는 방법에 대한 자세한 지침을 확인하실 수 있습니다.

단계 2: Amazon Machine Image (AMI) 사용자 지정
대규모 클러스터의 경우 AWS Marketplace의 최신 운영 체제 이미지로 시작한 다음 애플리케이션 요구 사항에 따라 사용자 지정하는 것이 좋습니다. 이 예에서는 CentOS 7.7 기본 AMI로 시작하여 컴퓨팅 노드 시작 시간을 줄이기 위해 SOCA에 필요한 시스템 패키지를 설치 후 AMI 사용자 지정했습니다. 솔루션에 대한 AMI를 사용자 지정하는 단계를 거칩니다.

하지만, 사용자 지정 AMI를 생성하기 전에 EDA 애플리케이션에 필요한 시스템 패키지도 설치해야 했습니다.다음은 특정 워크로드에 필요한 패키지의 예입니다.

# yum install -y \
	vim vim-X11 xterm compat-db47 glibc glibc.i686 openssl098e \
	compat-expat1.i686 dstat epel-release motif libXp\
	libXaw libICE.i686 libpng.i686 libXau.i686 libuuid.i686 libSM.i686 \
	libxcb.i686 plotutils libXext.i686 libXt.i686 libXmu.i686 \
	libXp.i686 libXrender.i686 bzip2-libs.i686 freetype.i686 \
	fontconfig.i686 libXft.i686 libjpeg-turbo.i686 motif.i686 \
	apr.i686 libdb libdb.i686 libdb-utils apr-util.i686 libXp.i686 \
	qt apr-util gnuplot

애플리케이션에 필요한 모든 시스템 라이브러리가 AMI에 사전 설치되어 있는지 확인해야 합니다. 응용 프로그램의 바이너리 디렉토리로 이동하여 다음 명령을 실행하여 확인 할 수 있습니다.

# ldd <application_path>/linux64/bin/<binary_name> | grep 'not found'

위의 명령은 운영 체제 라이브러리 경로에서 찾을 수 없는 라이브러리 종속성 목록을 반환해야 합니다. 그런 다음 이 명령을 사용하여 누락 된 라이브러리를 제공하는 패키지의 이름을 식별하고 설치할 수 있습니다.

# yum whatprovides */libname.*
# yum install -y packagename

다음으로, SELinux를 끄기 위해 /etc/selinux/config를 편집하여 SELinux값을 SELINUX=enforcing 에서 SELINUX=disabled 로 변경합니다.

그런 다음 많은 EDA 도구 에선 일반적으로 많은 수의 파일을 처리하는 경우가 많으므로, 특히 시스템 제한을 늘리는 것이 좋습니다. 이 작업은 다음 파일을 편집하고 후속 항목을 추가하여 수행할 수 있습니다.

/etc/sysctl.conf:
	net.core.somaxconn=65535
	net.ipv4.tcp_max_syn_backlog=163840
	net.core.rmem_default=31457280
	net.core.rmem_max=67108864
	net.core.wmem_default = 31457280
	net.core.wmem_max = 67108864
	fs.file-max=1048576
	fs.nr_open=1048576
/etc/security/limits.conf:
	*		hard 	memlock 	unlimited
	*		soft 	memlock 	unlimited
	*		soft 	maxproc 	3061780
	*		hard 	maxproc 	3061780
	*		soft	maxsignal	3061780
	*		hard	maxsignal	3061780
	*		soft	nofile		1048576
	*		hard	nofile		1048576
/opt/pbs/lib/init.d/limits.pbs_mom:
	ulimit -l unlimited
	ulimit -u 3061780
	ulimit -i 3061780
	ulimit -n 1048576

다음으로 기본 이미지에 Lustre 클라이언트용 Amazon FSx를 설치했습니다. 다음 링크를 참조하여 설치 단계를 수행할 수 있습니다. (CentOS 7.7 설치 가이드).  첫 번째 단계에서 컴퓨팅 노드 시작 시간을 줄이기 위해SOCA에 필요한 시스템 패키지를 설치하는 동안 커널을 업데이트하고 인스턴스를 재부팅했으므로 aws-fsx.repo 버전 7.7을 유지하도록 제한할 필요가 없습니다.

이제 모든 AMI 사용자 지정을 완료했으므로 인스턴스를 시작할 때 사용할 새 AMI를 만들 수 있습니다.Amazon EC2 콘솔로 이동하여 사용자 정의한 인스턴스를 선택하고 작업 -> 이미지 -> 이미지 생성을 클릭하고 AMI ID를 기록합니다.

마지막으로, /apps/soca/<CLUSTER_ID>/cluster_manager/settings/queue_mapping.yml 을 편집하여 AMI를 지정할 수 있습니다. 이렇게 하면 내 계산 클러스터가 모든 계산 및 데스크톱 노드에 이 이미지를 사용할 수 있습니다.

queue_type:
  compute:
    queues: ["high", "normal", "low"] 
    instance_ami: "<YOUR_AMI_ID>" # <- Add your new AMI ID
    base_os: "centos7"
    root_size: "10" 		 # <- Add the size corresponding to your AMI 
    instance_type: ...
...
  desktop:
    queues: ["desktop"] 
    instance_ami: "<YOUR_AMI_ID>" # <- Add your new AMI ID
    base_os: "centos7"
	root_size: "10" 		 # <- Add the size corresponding to your AMI 
	instance_type: ...

단계 3: 라이센스 서버 설정(여러 개 설정 옵션 사용)
AWS에서 EDA 워크로드를 실행할 때는 온-프레미스 라이선스 서버를 사용할 수 있지만, 이를 위해서는 온-프레미스 네트워크와 Amazon VPC 간에 안정적인 네트워크 연결이 필요합니다. 이는 AWS 사이트 간 VPN 연결을 사용하거나 AWS Direct Connect 를 사용하여 전용 네트워크 연결을 설정하여 설정할 수 있습니다. 그러나 대규모 테스트의 경우 컴퓨팅 노드와 라이선스 서버 간의 지연 시간이 짧은 것이 좋습니다. 그래서 이 게시물의 테스트에선 Amazon VPC에 라이선스 서버를 배포하기로 결정했습니다.

라이선스 서버의 경우, 스케줄러 인스턴스에 대해 SOCA에 의해 배포된 동일한 가용 영역에 해당하는 프라이빗 서브넷에서 CentOS 7.7을 실행하는 c5.2xlarge 인스턴스를 프로비저닝했습니다. AWS에 라이센스 서버를 구성하기 위한 특정 요구 사항에 대해서는 EDA 도구 공급업체에 문의해야 합니다. 이 블로그를 작성하는 시점에서 EDA 도구 공급업체의 두 가지 요구 사항을 알고 있으므로 두 가지 모두를 다룰 것입니다.

EDA 도구 공급 업체는 EC2 인스턴스에 연결된 ENI (엘라스틱 네트워크 인터페이스) 를 사용하여 라이센스 파일을 생성하도록 요구할 수 있습니다. 동일한 서브넷에 네트워크 인터페이스를 생성한 다음 EC2 인스턴스에 연결해야 합니다. 엘라스틱 네트워크 인터페이스 생성 및 연결에 대한 단계별 세부 정보를 확인 가능합니다.

또는 EDA 도구 공급업체에 라이센스 파일 신청 시, EC2 인스턴스 ID로 변환되고 형식이 VM_UUID==<AWS EC2 Instance ID> 인(예제, VM_UUID=i-0AF01C0123456789a) 가상 시스템 범용 고유 식별자 (VM UUID) 를 기반으로 요청할 수 있습니다. 이 경우 VM UUID를 기반으로 라이센스 생성을 지원하는 라이센스 데몬의 필요 최소 버전을 확인해야 합니다.

두 가지 경우, 모두 동일한 보안 그룹이 연결된 인스턴스 간의 모든 TCP 트래픽을 열기 때문에 SOCA 로 생성된 ComputeNodesecurityGroup이라는 보안 그룹을 라이센스 EC2 인스턴스에 연결하는 것을 추천합니다.

이제 라이센스 서버 인스턴스에 로그인하여 라이센스 소프트웨어를 구성하고 시작합니다. 다음 시스템 패키지는 FLEXlm에 필요하므로 라이센스 서버에 설치해야 합니다.

# yum install -y \
	vim glibc.i686 \
	glibc-devel.i686 \
	redhat-lsb

다음으로, Step2. 섹션 에서 진행한 것과 마찬가지로SELinux를 끄기 위해 /etc/selinux/config를 편집하여 SELinux값을 SELINUX=enforcing 에서 SELINUX=disabled 로 변경합니다.

그런 다음, EDA 도구 공급업체에서 제공하는 라이센스 애플리케이션을 설치하고 지침에 따라 라이센스를 생성할 호스트 ID를 식별해야 합니다.

라이센스 파일을 받은 후 다음 줄을 추가하여 라이센스 서버 인스턴스를 시작할 때마다 라이센스 데몬이 자동으로 시작되도록 /etc/rc.local을 편집했습니다.

/etc/rc.local:
	su centos -c "/vendor/version/linux64/bin/lmgrd -c /vendor/license/license.lic -l /vendor/logs/license.log - reuseaddr"

그런 다음 아래 명령을 호출하여 방화벽 데몬을 비활성화하고 인스턴스 재부팅 시 /etc/rc.local의 실행을 활성화합니다.

systemctl stop firewalld
systemctl disable firewalld
chmod +x /etc/rc.d/rc.local
systemctl enable rc-local
systemctl start rc-local

다음으로 시스템 제한을 늘렸습니다. 특히 30,000 개 이상의 코어로 대규모 작업을 수행 할 계획이므로 추가 파일 핸들과 네트워크 연결이 필요합니다.이 작업은 다음 파일을 편집하고 후속 항목을 추가하여 수행 할 수 있습니다.

/etc/sysctl.conf:
	net.core.somaxconn=65535
	net.ipv4.tcp_max_syn_backlog=163840
	net.ipv4.tcp_keepalive_time=300
	net.ipv4.tcp_keepalive_intvl=60 
	net.ipv4.tcp_keepalive_probes=5
	net.ipv4.tcp_retries2=3
	net.core.rmem_default=10485760
	net.core.rmem_max=10485760
	fs.file-max=1048576
	fs.nr_open=1048576


/etc/security/limits.conf:
	*		soft	nofile		1048576
	*		hard	nofile		1048576

마지막으로 모든 변경 사항이 적용되도록 라이센스 서버 인스턴스를 재부팅합니다.

참고: 라이센스 서버가 10,000개 이상의 라이선스 기능을 제공하는 경우 EDA 도구 공급업체는 라이센스를 더 많은 라이센스 서버로 분할하는 것을 권장합니다. 따라서 다른 EC2 인스턴스에서 단계 3. 섹션을 다시 반복하여 다른 라이선스 서버를 배포해야 할 수도 있습니다.

단계 4: Amazon S3 버킷을 생성하여 테스트 케이스 업로드하고 공유 파일 시스템 설정
영구 스토리지로 사용할 S3 버킷을 만든 다음 EDA 애플리케이션 소프트웨어와 필요한 테스트 케이스 파일을 버킷에 업로드합니다. 거기에서 Lustre용 FSx 파일 시스템을 설정하는 단계를 진행합니다. 이 블로그 게시물의 범위를 벗어나지만 AWS에서 EDA 도구를 실행하기 위한 대체 파일 시스템 옵션이 있습니다. 자세한 내용은 솔루션스 아키텍트에게 문의하시길 바랍니다.

S3 버킷을 생성하기 전에 AWS CLI를 설치해야 합니다.AWS CLI를 설치하려면 여기를 참고하십시오: AWS CLI 설치

그런 다음 S3 버킷을 생성하고 버킷에 데이터를 업로드할 수 있는 자격 증명(credential) 을 제공하여 AWS CLI를 구성합니다.

$ aws configure
AWS Access Key ID [None]: 
AWS Secret Access Key [None]: 
Default region name [None]: 
Default output format [None]: 

단계 4.1: S3 버킷 생성
S3 버킷을 생성하여 AWS CLI가 작동하는지 확인합니다.

$ aws s3 mb s3://app-testcases-<unique_id>
make_bucket: app-testcases-<unique_id>

참고: 예를 들어 app-testcases-<unique_id> 라는 S3 버킷을 만들면, <unique id>를 포함하여 S3 버킷 이름이 고유한지 확인이 필요합니다.

그런 다음 아래 명령을 이용하여 AWS 외부에 위치한 EDA 애플리케이션 설치 파일과 테스트 케이스 파일이 있는 랩톱 또는 서버에서 다음과 같이 S3 버킷에 쉽게 업로드 할 수 있습니다.

$ aws s3 cp Installer.bin s3://app-testcases-<unique_id>/
$ aws s3 cp App-version-common.ext s3://app-testcases-<unique_id>/
$ aws s3 cp App-version-linux64.ext s3://app-testcases-<unique_id>/
$ aws s3 cp design-testcases.tar.gz s3://app-testcases-<unique_id>/

참고: EDA 도구 공급 업체의 설치 파일은 일반 파일 확장자로 .bin.ext를 사용하고 있습니다. 사용 중인 머신에 퍼블릭 인터넷 액세스가 없는 경우 AWS에서 EC2 인스턴스를 생성한 다음 이를 사용하여 EDA 도구 공급업체의 FTP 서버에서 소프트웨어를 다운로드할 수 있습니다.

단계 4.2: Lustre Amzon FSx 파일 시스템 생성
Lustre용 Amazon FSx를 생성하기 전에 주의해야 할 몇 가지 고려 사항이 있습니다. Lustre용 Amazon FSx의 처리 용량은 스토리지 용량에 따라 다릅니다. 이 배포에서는 200MB/초/TiB를 구동하는 “Scratch 2” Amazon FSx 배포 유형 파일 시스템을 사용하게 되며, 이번테스트 케이스에서는 1.5GB/초의 처리량이 요구되므로 9.6TiB 파일 시스템을 생성해야 합니다. 테스트 케이스의 처리량 요구 사항에 대해 잘 모르는 경우에는 비교적 큰 Lustre 용 FSx 로 시작 후에, 초기 기본 숫자의 EC2 인스턴스로 실험하고 처리량 요구 사항을 수집한 다음, 전체 규모에서 필요한 인스턴스 수와 맞는 적절한 파일 시스템의 크기를 정합니다. 메타 데이터 작업이 많은 워크로드를 지원하려면 큰 파일 시스템을 사용하는 것이 좋습니다.

AWS 관리 콘솔을 사용하여 서비스에서 Amazon FSx -> 파일 시스템 생성으로 이동합니다. “Amazon FSx for Lustre”를 선택하고 다음 화면에서 파일 시스템의 이름을 입력하고 “Scratch 2” 를 선택, 스토리지 용량에 45.6을 입력하면 처리 용량은 8906 MB/초로 계산됩니다.

Network & security 섹션에서,

  • VPC 항목에서 soca-<stack name>-VPC를 선택,
  • VPC Security Groups 항목에서, soca-<stack-name>-ComputeNodeSG에 해당하는 보안 그룹을 선택,
  • Subnet 항목에서, soca-<stack-name>-Private1에 해당하는 서브넷을 선택합니다

Data repository integration 섹션에서 Data repository type을 Amazon S3로 변경하고 Import Bucket 항목에서 s3://app-testcases-<unique_id> 를 입력하고 Export prefix 항목에서 The same prefix that you imported from (replace existing objects with updated ones)” 를 선택합니다. 이는 앞에서 진행한 가져온 버킷과 동일한 접두사를 내보내어 기존 객채를 업데이트 합니다.

Tag 섹션에서는 태그를 제공하고 다음을 클릭하여 설정을 검토 한 다음 “Create file system”을 클릭하여 파일 시스템을 생성합니다.

파일 시스템은 5분 이내에 준비 되며, 파일 시스템이 생성되어 사용 준비가 되면 AWS 관리 콘솔에 상태가 표시됩니다.

마지막으로 스케줄러 인스턴스 (아직 로그인하지 않은 경우) 에 로그인하고 /apps/soca/<CLUSTER_ID>/cluster_manager/settings/queue_mapping.yml을 편집하여 컴퓨팅 및 데스크톱 대기열에 fsx_lustre 옵션을 사용하여 Lustre DNSName용 Amazon FSx를 포함시킵니다:

fsx_lustre: "fs-xxxxxxxxxxxxxxxxx.fsx.<region>.amazonaws.com"

queue_type:
  compute:
    queues: ["queue1", "queue2", "queue3"] 
    fsx_lustre: "fs-xxxxxxxxxxxxxxxxx.fsx.<region>.amazonaws.com" # <- Add your Amazon FSx for Lustre DNSName 

  desktop:
    queues: ["desktop"]
    fsx_lustre: "fs-xxxxxxxxxxxxxxxxx.fsx.<region>.amazonaws.com" # <- Add your Amazon FSx for Lustre DNSName

단계 5: NICE DCV사용하여 원격 데스크톱 세션에 연결
Step1단계에서 설정한 사용자 이름/암호를 사용하여 SOCA 웹 사용자 인터페이스에 로그인한 다음 왼쪽 사이드바에서 “Graphical Access”를 클릭합니다. Your Session #1 항목에서 CPU 및 메모리를 고려하여 가상 시스템의 유효성 및 크기를 선택한 다음 “Launch my Session #1”을 클릭합니다. 새 “desktop” 작업이 큐로 전송되어 지정된 요구 사항에 따라 새 인스턴스가 생성됩니다.

원격 데스크톱에 액세스할 수 있으려면 최대 20분 동안 기다려야 한다는 정보 메시지가 표시됩니다. 왼쪽 사이드바에서 “My Job Queue” 를 클릭하여 데스크톱 작업의 상태를 확인할 수 있습니다. 세션이 준비되면 “Graphical Access” -> “Your Session #1”의 정보 메시지가 연결 정보로 업데이트됩니다.

브라우저에서 직접 세션에 액세스하거나 Mac/Linux/Windows용 NICE DCV클라이언트를 다운로드하고 클라이언트를 통해 세션에 액세스 할 수 있습니다.

단계 6: EDA 도구 설치
원격 데스크톱 세션에 로그인하면 Amazon S3 버킷에 업로드한 파일이 /fsx경로에 자동으로 마운트되어 Lustre용 FSx가 표시되는 것을 확인할 수 있습니다.

$ cd /fsx
$ ls
Installer.bin App-version-common.ext App-version-linux64.ext design-testcases.tar.gz

다음 단계는 EDA 도구 공급업체의 설치 프로그램을 설정하는 것입니다.

$ chmod 755 Installer.bin
$ ./Installer.bin

설치 디렉토리를 입력하라는 메시지가 표시되면 /fsx/<vendor_name>를 입력한 다음 설치가 완료될 때까지 기다립니다.

다음 단계는 EDA 도구 공급업체의 설치 프로그램을 사용하여 실제 EDA 도구를 설치하는 것입니다.

$ /fsx/<vendor_name>/installer/installer

설치 프로그램을 실행하며 다운로드 된 EFT 파일이 들어있는 소스 디렉토리의 경로를 묻는 메시지를 표시하고 App-Version-*.ext가 포함 된 /fsx 경로를 입력합니다. 그런 다음 설치 프로그램에서 EDA 도구를 설치할 전체 경로를 묻는 메시지를 표시하므로 /fsx/<vendor_name>을 입력합니다. 이 후 설치 프로그램은 *.ext 파일의 무결성을 확인하고 설치를 계속합니다.

설치가 완료되면 ~/.bash_profile을 편집하여 다음을 추가합니다:

export EDATOOL_HOME=/fsx/<vendor_name>/<app_name>/<version>
source $EDATOOL_HOME/setup.sh
export LM_LICENSE_FILE=27020@ip-a-b-c-d 	# <- Step 3섹션에서 생성한 
                                              # 라이센스 서버 정보를 입력

마무리

이 블로그 게시물에서는 AWS 스케일-아웃 컴퓨팅 (Scale-Out Computing on AWS)를 사용하여 전체 반도체 설계 워크플로를 실행할 수 있는 EDA 환경을 설정했습니다. 앞으로 게시물에서는 이 인프라를 사용하여 예제 EDA 워크로드를 30,000개 이상의 코어로 확장할 수 있습니다.

– Ahmed Elzeftawi, Semiconductor and EDA Partner Solutions Architect

이 글은 AWS for Industries의 Scaling EDA Workloads using Scale-Out Computing on AWS 한국어 번역으로 EDA 분야 Specialist Solutions Architect인 손성환님이 번역해 주셨습니다.