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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Hacer que una aplicacion aproveche varios nucleos de la CPU
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Hacer que una aplicacion aproveche varios nucleos de la CPU  (Leído 8,711 veces)
crazykenny


Desconectado Desconectado

Mensajes: 4.239



Ver Perfil WWW
Hacer que una aplicacion aproveche varios nucleos de la CPU
« en: 10 Diciembre 2011, 14:44 pm »

Hola; abro este tema porque tengo una duda.
El caso es que las aplicaciones que he creado solo aprovechan uno de los nucleos de mi CPU, y me pregunaba si existe alguna forma de que estas puedan aprovechar de alguna manera mas de un nucleo de mi CPU, teniendo en cuenta que utilizo el compilador que utilizo es Blitz 3D, el cual tiene ya sus añitos, y, bueno, se puede decir que de forma nativa solo aprovecha un nucleo, o almenos eso creo, y lo pregunto mas que nada para saber si es posible, no se, aprovechar algun programa que puedan convertir mis programas para que usen mas de una CPU, o bien hacer uso de alguna libreria u algo asi para aprovechar varios nucleos (si, ya se que quizas sea algo imposible u algo asi, pero quisiera preguntarlo).
Gracias por vuestra atencion y vuestra ayuda, y me disculpo por las molestias causadas.
Saludos.


En línea

A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
https://informaticayotrostemas.blogspot.com/

Mi canal de Youtube:

https://www.youtube.com
Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: Hacer que una aplicacion aproveche varios nucleos de la CPU
« Respuesta #1 en: 10 Diciembre 2011, 15:04 pm »

Hola, http://foro.elhacker.net/programacion_cc/threads_affinity-t337582.0.html

Saludos.


En línea

crazykenny


Desconectado Desconectado

Mensajes: 4.239



Ver Perfil WWW
Re: Hacer que una aplicacion aproveche varios nucleos de la CPU
« Respuesta #2 en: 10 Diciembre 2011, 16:23 pm »

Gracias por el enlace con el comando, Khronos.
Por otra parte, y sin animo de despreciar o valorar negativamente tu ayuda, que no quiero valorarla negativamente (es mas, agradezco tu ayuda), me he fijado que en el tema, creo que lo pusiste porque buscabas poner threads en un nucleo especifico, y, entonces, el caso es que incluyes librerias en C/C++, y, bueno, en Blitz 3D no se crean threads; mas bien hay que ir escribiendo el codigo sin necesidad de incluir librerias, ya que el compilador las incluye a la hora de ejecutar el programa y/o compilarlo, o eso tengo entendido, y, bueno, no creo que funcione en el compilador que comento.
Aun asi, ¿seria posible hacer lo que me muestras en tu enlace con Blitz 3D, viendo algun ejemplo?. Cabe destacar que lo comento porque trabajo en Basic, no en C/C++.
Por ultimo, muchas gracias por tu ayuda y atencion.
Saludos.
En línea

A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
https://informaticayotrostemas.blogspot.com/

Mi canal de Youtube:

https://www.youtube.com
[Case]


Desconectado Desconectado

Mensajes: 474



Ver Perfil WWW
Re: Hacer que una aplicacion aproveche varios nucleos de la CPU
« Respuesta #3 en: 10 Diciembre 2011, 18:37 pm »

Pero tus programas se pueden implementar en Procesos Paralelos Independientes?.

Por que si están hechos para que solamente un proceso funcione a la vez, entonces no hay nada que hacer.
En línea

crazykenny


Desconectado Desconectado

Mensajes: 4.239



Ver Perfil WWW
Re: Hacer que una aplicacion aproveche varios nucleos de la CPU
« Respuesta #4 en: 10 Diciembre 2011, 21:13 pm »

¿Implementar en Procesos Paralelos Independientes?; no se, es la primera vez que lo escucho, y me disculpo por mi ignorancia; se que es un compilador en Basic (concretamente es un editor de juegos llamado Blitz 3D), pero, viendo el enlace de Khronos, no creo que se pueda ejecutar un hilo en una CPU, o almenos en la "ayuda" en español (o mas bien los comandos en español) como en la del compilador, creo que no hay nada relacionado con Threads, y por eso he comentado acerca de librerias y demas, a ver si es posible que incluyendo alguna libreria se pueda hacer algo para ampliar temas de funciones del compilador, añadiendola, o es lo que se me ha ocurrido.
Gracias por vuestra atencion.
Saludos.
En línea

A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
https://informaticayotrostemas.blogspot.com/

Mi canal de Youtube:

https://www.youtube.com
adastra
Endless Learner
Ex-Staff
*
Desconectado Desconectado

Mensajes: 885


http://thehackerway.com/


Ver Perfil WWW
Re: Hacer que una aplicacion aproveche varios nucleos de la CPU
« Respuesta #5 en: 10 Diciembre 2011, 22:04 pm »

No conozco Blitz 3D, pero cuando un lenguaje de programación soporta multithreading (por ejemplo Java, C/C++, .NET) cuando iniciar varios procesos con sus correspondientes hilos, el lenguaje de programación se encarga de trabajar de forma nativa con los procesadores que tenga disponibles tu máquina, con la finalidad de brindar un mejor desempeño, el máximo nivel de "personalización" de este comportamiento, se lo indicas al lenguaje por medio de la API correspondiente para tal fin.
Ahora, como bien he dicho no conozco Blitz, por lo tanto lo que debes hacer, es buscar si tiene soporte a multi-threading (es decir, que puedas crear múltiples hilos y tenga soporte a acceso concurrente a recursos).
En línea

[Case]


Desconectado Desconectado

Mensajes: 474



Ver Perfil WWW
Re: Hacer que una aplicacion aproveche varios nucleos de la CPU
« Respuesta #6 en: 11 Diciembre 2011, 01:31 am »

Pues los procesos paralelos independientes son los Threads, ejecucion de hilos de forma independiente, tratando de que no caigan el el llamado abrazo mortal.

Si en la libreria del compilador no vienen los Threads entonces no creo que puedas ocupar los demás núcleos del CPU, por otro lado yo encuentro extraño que el compilador que mencionas no los tenga implementados.
En línea

crazykenny


Desconectado Desconectado

Mensajes: 4.239



Ver Perfil WWW
Re: Hacer que una aplicacion aproveche varios nucleos de la CPU
« Respuesta #7 en: 11 Diciembre 2011, 11:20 am »

Gracias por vuestra ayuda; buscando ahora por google con lo que me habeis dicho, creo que he encontrado una libreria de muluthread u algo asi; el ejemplo de codigo es este, el cual no acabo de entender, la verdad;
Código:
; Example of use FastPointer library.
; (c) 2008-2009 created by MixailV aka Monster^Sage [monster-sage@mail.ru]  http://www.fastlibs.com
;
; Attention! Functions only for the advanced users, use them very accurately.
; If you do not understand how it works, do not use it!
;

Include "FastPointer.dll"

; create scene objects
Graphics3D 800,600,0,2
SetFont LoadFont("Tahoma",15)
Camera = CreateCamera()  :  PositionEntity Camera, 0, 0, -3.5
Light = CreateLight()
Global Cube = CreateCube()



; function for thread (with single integer param - it is obligatory)
; don't load meshes in thread, if you use RenderWorld function in main loop
Function ThreadFunction ( entity%=0 )
Repeat
TurnEntity entity, 0.5, 0.3, 0.4
Delay 10
Forever
End Function


; get pointer to thread function
ThreadFunctionPointer = FunctionPointer()
Goto skip
ThreadFunction() ; <<< get pointer from this function
.skip


; create thread
Thread = CreateThread (ThreadFunctionPointer, Cube)


; main loop
While Not KeyHit(1)
RenderWorld
Text 10,10,"You can control entity from threads!"
Flip 0
Wend


; freel thread
If IsThread(Thread) Then FreeThread(Thread)


WaitKey()
End
Ademas, me comenta el compilador que falta la funcion llamada "functionpointer".
Saludos.
En línea

A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
https://informaticayotrostemas.blogspot.com/

Mi canal de Youtube:

https://www.youtube.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como hacer un chat para varios pc's « 1 2 »
Programación Visual Basic
agutin1983 13 6,368 Último mensaje 26 Febrero 2006, 20:54 pm
por Luk2006
pegar varios trozos para hacer una peli
Multimedia
alejo55 1 1,701 Último mensaje 10 Mayo 2006, 14:05 pm
por Songoku
Programa para hacer dvd con varios videos?¿?¿?¿
Multimedia
txente 3 5,743 Último mensaje 1 Febrero 2010, 15:04 pm
por Songoku
hacer usb boteable con varios .iso
Software
Sk9ITk5Z 6 4,585 Último mensaje 30 Noviembre 2011, 17:03 pm
por Sk9ITk5Z
Aplicacion explota en varios stream (FILE *) « 1 2 »
Programación C/C++
Fire544 10 4,681 Último mensaje 5 Diciembre 2012, 20:52 pm
por Fire544
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines