280 likes | 466 Views
CHIRP SIGNAL ANALYSIS. Cesar A Aceros Moreno. DCFT Definition. CHIRP Signal. OUTPUT OF THE DCFT. Dataflow of the DCFT. Structure of the datafiles. dataout.txt 128 -0.000000 real.x[0,0] -0.000000 imag.x[1,0] 0.000000 real.x[1,0] 0.000000 imag.x[1,0] ….
E N D
CHIRP SIGNAL ANALYSIS Cesar A Aceros Moreno
Structure of the datafiles • dataout.txt • 128 • -0.000000 real.x[0,0] • -0.000000 imag.x[1,0] • 0.000000 real.x[1,0] • 0.000000 imag.x[1,0] • …. • -0.000000 real.x[127,0] • 1.414215 imag.x[127,0] • -1.414213 real.x[0,1] • 0.000000 imag.x[0,1] • …. • -0.000000 real.x[127,1] • 0.000000 imag.x[127,1] • 1.913880 real.x[0,2] • 0.580570 imag.x[0,2] • datain.txt 128 1.000000 x[0] 0.000000 x[1] 0.555570 x[2] …. 0.831470 x[124] -0.195090 x[125] 0.980785 x[126] -0.707107 x[127]
DCFT IMPLEMENTATIONS DCFT PC IMPLEMENTATION Matlab C CLUSTER IMPLEMENTATION PLANET LAB Serial Parallel
DCFT Serial outfile = fopen("dataout.txt", "w"); fprintf(outfile,"%ld\n",nn); for (l=0;l<nn;l++){ printf("Layer %ld \n",l); for (i=1;i<2*nn+1;i++){ dataw[i]=data[i]; } haddamard(dataw,nn,l); four1(dataw,nn,1); for (i=1;i<2*nn+1;i++){ dataw[i]=dataw[i]/sqrt(nn); fprintf(outfile,"%f\n", dataw[i] ); } } fclose(outfile); } main() { char temp[1]; float *data, *dataw; long int nn=0; int i=0,l=0; FILE *infile,*outfile; if ((infile = fopen("datain.txt", "r")) == NULL) fprintf(stderr,"Cannot open file"); fscanf(infile,"%d",&nn); printf("Valor size: %d\n",nn); data = malloc(sizeof(float)*nn*2); dataw = malloc(sizeof(float)*nn*2); for (i=1;i<2*nn+1;i++){ fscanf(infile,"%f",&data[i]); } fclose(infile);
Experiment Description: createdata • For the experiment the sample size was limited to be within the set {6000, 7000, 8000} • The sample size was varied from one experimental run to the next. • The values of K0 and L0 where chosen randomly on each run.
Experiment Description: dcft • Input: • Reads the file datain generated by createdata. • Output: • Calculates the DCFT of the input data and prints the results to a file named dataout.
Experiment Description • Of the two programs dcft is the only one of interest. • Utilized Paradyn to instrument and analyze the performance of dcft.
Analyzing Performance with Paradyn: Metric Descriptions • cpu – Each bin represents thepercentage of cpu time spent during the corresponding time interval. Aggregation is total cpu time over an interval. • cpu_inclusive – Same as cpu but includes called procedures in the process time calculation. • exec_time - Each bin represents theelapsed wall clock time per unit during the corresponding time interval. Aggregation is the sum over the interval.
Analyzing Performance with Paradyn: Metric Descriptions • io_bytes – This metric represents the number of bytes for Input/Output operations. Currently, only “read” and “write” are supported as input/output operations for UNIX, MPI, and PVM. • io_ops – Number of Input/Output operations. IO operations are the same as for io_bytes. • io_wait – Time spent during Input/Output operations. IO operations are the same as for io_bytes. • io_wait_inclusive – Same as io_wait but includes called procedures in the process time calculation.
Analyzing Performance with Paradyn: Results Sampling Size = 7000, K0 = 15, L0 =15
Analyzing Performance with Paradyn: Results Sampling Size = 7000, K0 = 15, L0 =15
Sampling Size = 8000, K0 = 10, L0 =10 Analyzing Performance with Paradyn: Results
Sampling Size = 8000, K0 = 10, L0 =10 Analyzing Performance with Paradyn: Results
FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST). We believe that FFTW, which is free software, should become the FFT library of choice for most applications. #include <fftw_mpi.h> #include <fftw.h> plan = fftw_mpi_create_plan(MPI_COMM_WORLD, NX , FFTW_FORWARD, FFTW_IN_PLACE); fftw_mpi(plan, 1, datainC, dataout); fftw_mpi_destroy_plan(plan);
PLANET LAB • CHIRP IMPLEMENTATION