표 1.1은 DPDK의 예제 디렉토리에서 사용할 수 있는 몇 가지 주요 샘플 응용 프로그램의 목록을 보여 주며, DPDK 응용 프로그램에 의한 EAL 계층의 초기화시 사용할 논리 코어와 해당 소켓 위치가 표시됩니다. 이 정보는 예를 들어 cat /proc/cpuinfo를 실행하여 /proc/cpuinfo 파일을 검사하여 시스템의 모든 코어에 대해 결정될 수도 있습니다. 각 프로세서에 대해 나열된 물리적 ID 특성은 프로세서가 속한 CPU 소켓을 나타냅니다. 이 기능은 다른 프로세서를 사용하여 논리 코어가 소켓에 매핑되는 것을 이해하는 경우에 유용할 수 있습니다. 예를 들어 사용자가 -q 4를 지정하면 응용 프로그램은 하나의 lcore로 4개의 포트를 폴링할 수 있습니다. 대상에 16개의 포트가 있는 경우(포트마스크 인수가 -p ffff인 경우) 응용 프로그램은 모든 포트를 폴링하기 위해 4개의 lcores가 필요합니다. 이 예제에서는 단일 포트에 연결된 rx 및 tx 큐 수를 구성합니다. 소켓-mem 옵션을 사용하여 특정 소켓에 대한 특정 양의 메모리를 요청할 수 있습니다. 이는 –socket-mem 플래그를 제공하고 각 소켓에 요청된 메모리 양을 공급하여 소켓 1에 대해서만 512MB를 시도하고 예약하는 경우 수행됩니다. 마찬가지로 4개의 소켓 시스템에서 각 소켓 0과 2에만 1GB 메모리를 할당하려면 매개 변수 –socket-mem=1024,0,1024를 사용할 수 있습니다. 명시적으로 참조되지 않은 CPU 소켓(예: 이 경우 소켓 3)에는 메모리가 예약되지 않습니다. DPDK가 각 소켓에 충분한 메모리를 할당할 수 없는 경우 EAL 초기화가 실패합니다.

EAL이 초기화되면 응용 프로그램은 lcore에서 함수를 시작할 준비가 되었습니다. 이 예제에서는 사용 가능한 모든 lcore에서 lcore_hello()가 호출됩니다. 다음은 함수의 정의입니다: 예제는 흐름 규칙을 빌드하기 위한 구현을 보유하는 예제 논리 및 flow_blocks.c를 보유하는 main.c 2개의 파일로 빌드됩니다. 이러한 예제는 단순에서 합리적으로 복잡한 것까지 다양하지만 대부분은 DPDK의 특정 기능을 보여 주도록 설계되었습니다. 더 흥미로운 예 중 일부는 아래에 강조 표시됩니다. 예를 들어 코어 0-7 및 16-23이 소켓 0에 나타나는 반면 코어 8-15 및 24-31은 소켓 1에 나타나는 8개의 물리적 코어가 있는 듀얼 프로세서 소켓 플랫폼을 생각해 보십시오. 추가 샘플 응용 프로그램은 ${RTE_SDK}/예제 디렉토리에 포함됩니다. 이러한 샘플 응용 프로그램은 이 설명서의 이전 섹션과 유사한 방식으로 빌드및 실행할 수 있습니다. 또한 응용 프로그램에 대한 설명, 컴파일 및 실행에 대한 특정 지침 및 코드에 대한 몇 가지 설명은 DPDK 샘플 응용 프로그램 사용 설명서를 참조하십시오.