Find Jobs
Hire Freelancers

analysis

$30-100 USD

Cerrado
Publicado hace más de 20 años

$30-100 USD

Pagado a la entrega
This project is based on 2 parts. The first part is basically already done. I need help with the second part. **Part I** Analyze the size of the caches on the machine. Then answer a set of given questions in a written report: **Part II** Use the information you gathered in Part I to evaluate the performance of the six possible loop orderings for matrix-matrix multiplication. You should write a function, MM, that performs matrix multiplication on *N* x *N* matrices. The inputs to your matrix multiplication function are two matrices, *A* of dimension *N*x*N* and *B* of dimension *N*x*N*, along with *N*. The output of the function is the *N*x*N* matrix *C = A · B*. Implement all six variants in the C programming language, with three levels of manual loop unrolling for each variant - none, 2 and 4 (loop unrolling at level *i* means *i* iterations of the loop are merged into 1 iteration of the unrolled loop). You can assume that *N* is divisible by 4. Evaluate the performance of all the programs (18 in total) for values of *N* up to 512, for N a power of 2, starting at 16 (i.e. *N* = 16, 32, 64, ..., 512). Run each variant multiple times to be sure you get consistent timings (i.e. throw out outliers, and average the run times for a given variant). The matrix entries should have type **double**. You can fill in the matrix entries however you want (but don't make them all the same). The overall idea is to determine which variations work best for which values of *N*, and why. Write up the results of your program in which you would have to include specified details. ## Deliverables 1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request. 3) Complete ownership and distribution copyrights to all work purchased. ## Platform Runtime environment You must run your code on the CSIC Linux cluster, available via ssh at [login to view URL] (that IP address corresponds to the remote login server machines), so that's where you should do your development work and run the programs. More information about the lab is available here. To get accurate timing results, we suggest going to the lab and sitting at one of the machines, so that you are likely to be the only user on the machine. Also, for Part II, the timing routines from Exercise 5.2 for Part I are not accurate enough to time your matrix multiply programs. For more accurate timing routines, look at the man page for the **gettimeofday**() C library function. I can provide more details ..
ID del proyecto: 2966856

Información sobre el proyecto

Proyecto remoto
Activo hace 21 años

¿Buscas ganar dinero?

Beneficios de presentar ofertas en Freelancer

Fija tu plazo y presupuesto
Cobra por tu trabajo
Describe tu propuesta
Es gratis registrarse y presentar ofertas en los trabajos

Sobre este cliente

Bandera de UNITED STATES
United States
0,0
0
Miembro desde ago 24, 2003

Verificación del cliente

¡Gracias! Te hemos enviado un enlace para reclamar tu crédito gratuito.
Algo salió mal al enviar tu correo electrónico. Por favor, intenta de nuevo.
Usuarios registrados Total de empleos publicados
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Cargando visualización previa
Permiso concedido para Geolocalización.
Tu sesión de acceso ha expirado y has sido desconectado. Por favor, inica sesión nuevamente.