[[TracNav(WARPLab7/TOC)]] = WARPLab 7: Benchmarks = == Jumbo Frames == WARPLab 7 supports "jumbo frames," which are Ethernet packets larger than 1500 bytes. WARPLab 7 supports packet sizes up to 9014 bytes long. The benefit of longer packets is that fewer packet exchanges are required in the burst of transmissions that occur when reading or writing large numbers of samples. On our computers, the improvement in speed for the [wiki:WARPLab7/Reference/Commands/Baseband#read_iq read_IQ] [[Image(jumbo_char.png,width=600)]] {{{ clear node node = wl_initNodes(1); [RFA,RFB] = wl_getInterfaceIDs(node); NUMITER = 100; NUMLENGTHS = 6; maxPayloadVec = [1000,floor(linspace(1470,double(node.transport.maxPayload),NUMLENGTHS-1))]; IQvec = complex(randn(node.baseband.txIQLen,1),randn(node.baseband.txIQLen,1)); IQvec = IQvec./(max(abs(IQvec))); duration_write = zeros(NUMITER,NUMLENGTHS); duration_read = zeros(NUMITER,NUMLENGTHS); mean_duration_write = zeros(1,NUMLENGTHS); std_duration_write = zeros(1,NUMLENGTHS); mean_duration_read = zeros(1,NUMLENGTHS); std_duration_read = zeros(1,NUMLENGTHS); for k = NUMLENGTHS:-1:1 fprintf('Current maxPayload: %d\n',maxPayloadVec(k)); node.transport.maxPayload = maxPayloadVec(k); for m = NUMITER:-1:1 currTime = tic; wl_basebandCmd(node,RFA,'write_IQ',IQvec); duration_write(m,k) = toc(currTime); currTime = tic; wl_basebandCmd(node,RFA,'read_IQ',0,node.baseband.rxIQLen); duration_read(m,k) = toc(currTime); end mean_duration_write(k) = mean(duration_write(:,k)); std_duration_write(k) = std(duration_write(:,k)); mean_duration_read(k) = mean(duration_read(:,k)); std_duration_read(k) = std(duration_read(:,k)); end %% Plotting figure(1);clf errorbar(maxPayloadVec,mean_duration_write,std_duration_write,'LineWidth',2) hold on errorbar(maxPayloadVec,mean_duration_read,std_duration_read,'r','LineWidth',2) grid on xlabel('Payload Size') ylabel('Duration (Seconds)') title('Duration of Commands vs Payload Size') legend('write_IQ','read_IQ') myAxis = axis; myAxis(3) = 0; axis(myAxis); standardPayload = 1470; H = line([standardPayload standardPayload],[myAxis(3),myAxis(4)]); set(H,'Color',[0 0 0]) set(H,'LineWidth',2) H = text(standardPayload + .01*myAxis(2),.9*myAxis(4),'Standard Payload Size'); set(H,'FontName','Ariel') set(H,'FontWeight','bold') hold off }}}