Título: Como utilizar ambos nucleos de un procesador x2 ? Publicado por: el_c0c0 en 13 Enero 2009, 06:52 am Claro, como lo dice el titulo. Es que ultimamente ninguno de los programas que he visto estresan los 2 nucleos. Solo 1.
Por ejemplo si yo quiero plantar un thread en el Nucleo #2 y otro thread en el Nucleo #1, y en cada uno hacer un Do: DoEvents: Loop... algo simple que estrese ambos nucleos... Si yo hago eso, el micro quizas ronde los 46% y si nos fijamos en el grafico por nucleo, solo el nucleo #1 esta trabajando como gato. Pero el otro esta tranquilo, ni se mosquea... Por eso, yo queria saber como hacer esto? aunque sea para correr un thread en el nucleo #2 y no molestar en gran parte al #1. PD: Yo se que desde el administrador de tareas, desde la opcion Establecer afinidad podemos hacer esto; pero yo queria hacerlo mas independiente, y no solo excluirse del nucleo #1, sino qe dentro del codigo este la opcion de usarlo o no. Ademas que este sujeto a la cantidad de nucleos, yo dije x2 porque yo tengo x2.. pero algun suertudo tendra X4 o X8... saludos! Título: Re: Como utilizar ambos nucleos de un procesador x2 ? Publicado por: servl en 14 Enero 2009, 01:13 am en vb lo podes hacer con multithread, yo simplemente lo hago diferente ya para la programacion de juegos (ao, y un par que ise en 3d o como aoyind) usa una dll echa por mi en c++ que llama al multithread, ya que en vb es muy lento, malo y trae problemas, te recomiendo pasarte a c++, o si queres agregame y te paso la dll
Título: Re: Como utilizar ambos nucleos de un procesador x2 ? Publicado por: seba123neo en 14 Enero 2009, 02:07 am de multihilo esta lleno internet ,¿ pero elegir el procesador donde queres el hilo ?
Título: Re: Como utilizar ambos nucleos de un procesador x2 ? Publicado por: el_c0c0 en 14 Enero 2009, 17:00 pm de multihilo esta lleno internet ,¿ pero elegir el procesador donde queres el hilo ? Podes hacer con el api SetProcessAffinityMask (que me pasaste vos). A su vez tenes la otra api GetProcessAffinityMask. Con eso lo limitas, pero no es la idea original, que seria que cada thread este en un nucleo distinto.saludos Título: Re: Como utilizar ambos nucleos de un procesador x2 ? Publicado por: el_c0c0 en 14 Enero 2009, 17:43 pm Aprovechando este thread, queria pedir ayuda con una API. GetLogicalProcessorInformation (http://msdn.microsoft.com/en-us/library/ms683194(VS.85).aspx). Directamente no se como llamarla.. Supongo que ambos parametros son del tipo Long. En fin, llamando a la funcion con el Buffer = 0 te devuelve el len del buffer desde el otro parametro..
Mas que eso no sabria ... si alguien puede ayudarme... desde ya muchas gracias saludos Título: Re: Como utilizar ambos nucleos de un procesador x2 ? Publicado por: Lambda en 14 Enero 2009, 22:33 pm SetThreadAffinityMask (http://msdn.microsoft.com/en-us/library/ms686247(VS.85).aspx)
Título: Re: Como utilizar ambos nucleos de un procesador x2 ? Publicado por: wimacoco en 31 Agosto 2009, 18:43 pm en vb lo podes hacer con multithread, yo simplemente lo hago diferente ya para la programacion de juegos (ao, y un par que ise en 3d o como aoyind) usa una dll echa por mi en c++ que llama al multithread, ya que en vb es muy lento, malo y trae problemas, te recomiendo pasarte a c++, o si queres agregame y te paso la dll Holas servl esta muy inetesante lo q dices acerca de ese dll q hiciste, me lo podrias pasar para hacerle pruebas en mis trabajo, si? Título: Re: Como utilizar ambos nucleos de un procesador x2 ? Publicado por: raul338 en 31 Agosto 2009, 20:22 pm Claro, como lo dice el titulo. Es que ultimamente ninguno de los programas que he visto estresan los 2 nucleos. Solo 1. Por ejemplo si yo quiero plantar un thread en el Nucleo #2 y otro thread en el Nucleo #1, y en cada uno hacer un Do: DoEvents: Loop... algo simple que estrese ambos nucleos... Si yo hago eso, el micro quizas ronde los 46% y si nos fijamos en el grafico por nucleo, solo el nucleo #1 esta trabajando como gato. Pero el otro esta tranquilo, ni se mosquea... Por eso, yo queria saber como hacer esto? aunque sea para correr un thread en el nucleo #2 y no molestar en gran parte al #1. PD: Yo se que desde el administrador de tareas, desde la opcion Establecer afinidad podemos hacer esto; pero yo queria hacerlo mas independiente, y no solo excluirse del nucleo #1, sino qe dentro del codigo este la opcion de usarlo o no. Ademas que este sujeto a la cantidad de nucleos, yo dije x2 porque yo tengo x2.. pero algun suertudo tendra X4 o X8... saludos! Eso se llama programacion paralela, actualmente no se como se usa, pero quiero investigar cuando ya tenga algun tiempo libre....igual cualquier aporte lo vere ;D |