elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como aprovechar un doble núcleo?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como aprovechar un doble núcleo?  (Leído 4,503 veces)
Og.


Desconectado Desconectado

Mensajes: 822


Aprendiendo de la vida


Ver Perfil
Como aprovechar un doble núcleo?
« en: 11 Mayo 2010, 06:40 am »

Pues esa es mi duda, que tengo que hacer para que un código en C++ aproveche el hecho de que tenga un procesador de doble núcleo?

Saludos y gracias :)


En línea

|-
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Como aprovechar un doble núcleo?
« Respuesta #1 en: 11 Mayo 2010, 08:09 am »

Podes crear un hilo, el S.O. se encarga del resto aunque si queres forzarlo podes especificar la afinidad de cada hilo con un procesador.

Windows, SetProcessAffinityMask:
http://msdn.microsoft.com/en-us/library/ms686223(VS.85).aspx


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Como aprovechar un doble núcleo?
« Respuesta #2 en: 11 Mayo 2010, 08:13 am »

Es un tema bastante extenso como para preguntarlo en forma tan abierta. Tenes que especificar, como mínimo, sobre que sistemas.

En principio, para programas relativamente sencillos los threads es todo lo que necesitas. Tal vez en programas mas complejos el mantenimiento de los threads y el futuro desarrollo puede dificultarse bastante, ya que el hecho de usar multithreading acarrea problemas como las race conditions, aunque eso lo podes solucionar usando mutexes. De esta forma también traes a escena otros problemas como los deadlocks y los livelocks, solucionables, pero mas desde el lado del análisis del algoritmo que desde la parte practica.
En todo caso si vas por el lado del multithreading, a mi me gusta boost por varias razones, pero supongo que con una o dos búsquedas encontraras análisis mas extensos que lo que yo te pueda decir ahora en un solo post.

Para analizar si necesitas usar o no usar threads, primero hay que saber no solo sus grandes problemas si no también sus beneficios, como por ejemplo compartir recursos, lo cual no requiere mucho trabajo extra ya que comparten el mismo espacio de direcciones del proceso. Ademas son mas simples en el sentido que hay menos complejidad interna por thread que por proceso individual, lo cual obviamente impacta en el rendimiento.

Como ultimo sobre threads, cada sistema los trata de manera distinta y en pos de poder optimizar el rendimiento, primero necesitas saber como funciona el sistema en el cual quieres trabajar (Por ejemplo, con que prioridad trata el sistema a determinados threads)

Otro acercamiento al problema es el multiproceso, que a grandes rasgos es todo lo contrario al multithreading en cuanto a ventajas y desventajas, pero por ahora dejo el post aca si no se hace demasiado largo. Ten en cuenta que hay varios acercamientos al tema, no solo estos dos, y cada uno tiene sus ventajas y desventajas y obviamente a pesar que pueda gustarme a mi o a cualquiera una u otra forma, depende mas que nada del escenario de la aplicacion que de los gustos de cada programador.

Algunos links que tenia por ahí guardados:


Si tenes dudas ya sabes.

Saludos!


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Se filtra un misterioso HTC Pyramid con Android y chip de doble núcleo
Noticias
wolfbcn 0 1,723 Último mensaje 3 Febrero 2011, 18:56 pm
por wolfbcn
Duda: ¿Cómo puedo aprovechar dos interfaces de red?
GNU/Linux
xavierote 2 3,323 Último mensaje 13 Julio 2011, 23:40 pm
por xavierote
Duda móviles con doble núcleo
Dispositivos Móviles (PDA's, Smartphones, Tablets)
novalida 2 3,009 Último mensaje 16 Abril 2012, 05:28 am
por beholdthe
Cómo aprovechar un exploit?
Nivel Web
Cha0s_Sasha 1 2,665 Último mensaje 14 Mayo 2012, 23:07 pm
por Cha0s_Sasha
¿Cómo dimensionar un doble apuntador?
Programación C/C++
ERIK546 5 5,024 Último mensaje 2 Julio 2012, 08:02 am
por ERIK546
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines