Bienvenue sur le forum des portables Asus !
Une communauté d'utilisateurs, des conseils d'experts, des guides et des tutos pour réparer vous même votre portable.

Arrivé en limite du "Do It Yourself" ? Nous prenons en charge votre portable dans nos ateliers.

Je rejoins la communauté Asus

A8JC pour calcul scientifique

#1
bonjour j'envisage d'acheter le Asus A8JC-H025H, bon compromis poids/taille de l'ecran/performance/prix a mon sens. Je ne joue pas (ca peut venir neanmoins!) donc les performances graphiques m'interessent assez peu. En revanche je developpe (en C/Fortran) et je voudrais savoir si quelqu'un a deja essaye de faire tourner des codes developpes par lui avec les processeurs duo. Quel compilo prendre pour l'autoparallelisation (le intel est un peu cher a mon gout)? Je fais du code bourrin (suis une pauvre universitaire qui ne sait pas coder...) gourmand en memoire vive et en cpu. Et je ne vais pas tout formater (il est vendu preinstaller avec que du ntfs) pour installer linux . Bref coder sur l'A8JC oui ou non?
 

kankan

Staff
Barreur
Modèle
Pro B8430UA-FA0412E / G75VW
Vendeur
materiel.net
Achat
2016 / 2012
Proc
i7-6500U 2,5 GHz / i7-3610QM
HD
SSD
RAM
8 Go DDR4 / 16 Go DDR3
Ecran
2 Ecrans 27' Asus VG278HE
OS
Windows 10
#2
bonjour j'envisage d'acheter le Asus A8JC-H025H, bon compromis poids/taille de l'ecran/performance/prix a mon sens.
Bonjour gwen, Effectivement, ce modéle est assez sympa, léger et transportable :)

Je ne joue pas (ca peut venir neanmoins!) donc les performances graphiques m'interessent assez peu
Ca tombe plutot bien alors car la carte fournie avec cette machine (Geforce Go 7300) n'est pas des plus performante (date de 2005). Elle te permettra de faire tourner quelques jeux mais ne compte pas tirer parti des derniers titres 3D.

En revanche je developpe (en C/Fortran) et je voudrais savoir si quelqu'un a deja essaye de faire tourner des codes developpes par lui avec les processeurs duo. Quel compilo prendre pour l'autoparallelisation (le intel est un peu cher a mon gout)? Je fais du code bourrin (suis une pauvre universitaire qui ne sait pas coder...) gourmand en memoire vive et en cpu.
concernant le calcul, je pense que tu seras satisfaite de la rapidité mise a ta disposition par le double coeur de l'A8, et les 1go de ram équipées seront également te satisfaire.
Concernant l'autoparallélisation ce n'est pas du tout mon domaine, je laisserai s'exprimer les spécialistes du forum, me concernant je travaille beaucoup le web sur Photoshop + Dreamweaver en meme temps assez gourmants en ressources, l'ensemble demeure stable et reactif.

Bref coder sur l'A8JC oui ou non?
Je dirai Oui.

Cdl
 
#3
merci kankan! Vu ce qui sort en ce moment niveau proc, je pense que les compilo gerant le dual core proprement vont de toute facon se generaliser assez rapidement, et j'ai tendance a penser qu'asus, c'est bien. Donc, j'y vais pour le A8!
 
#4
Salut,

Je ne suis pas un programmeur fou mais il me semble que ça n'est pas le compilateur qui rend une application multi-thread mais que c'est au codeur de prévoir son code pour qu'il soit multi-threadable.

Si ça n'était que le compilateur qui faisait ce boulo ça ferait belle burette que toutes les app seraient multi-threadées...

Quoi qu'il en soit même en mono-thread le demi-core-duo s'en tire quand même bien alors pas de doute : c'est du bon.

++
 
#5
merci obinoby
je faisais juste reference au compilateur intel qui semble gerer la chose en "autoparallelisant" le code (j'imagine que ca signifie que les executables generes sont optimises pour ce genre d'architecture, mais ca c'est la pub intel et 1) c'est leur metier de dire ce genre de choses - 2) je n'y connais pas grand chose)). Si le "prevoir" en programmant, pour moi ca equivaut a me coltiner MPI ou un truc du genre et j'ai pas trop envie ...
Mais je suis d'accord ca a l'air d'etre du bon quoi qu'il en soit.
 
#7
Salut,

Je developpe aussi pas mal des algorithmes demandant pas mal de temps de CPU.

Je confirme que ce n'est pas le compilateur qui va parallèliser de lui meme réellement, ou alors le gain sera minime.

La programmation multithread demande certaines techniques particulière (mutex, sémaphore ...) en raison que certaines fonctions standard (en C) ne sont pas safe-thread (ex :' malloc' et 'free' appelé en même temps crash le programme). C'est pas un hasard si les developpeur de jeux video ont critiqué la PS3 à cause du processeur CELL et à je ne sais plus combien d'unités de calcul.

Par contre une astuce pour ceux qui ont des programmes mono-thread : forcer l'exécution que sur un unique coeur. Dans un programme je suis passé de 8 secondes à 5 secondes.
 
#9
A m'a connaissance ce n'est pas possible avec les option de compilation, c'est le système d'exploitation (plus exactement le 'dispatcheur') qui choisit quel processus/thread va s'executer sur quel CPU.

Sous windows ça peut se régler avec le gestionnaire des tâche, onglet processus, clique-droit sur le processus en question->affinité. Pour info les processus hérite de l'affinité de leur parent, par exemple si visual studio C++ n'est affecté que sur le CPU 1, executer un programme depuis visual fera que ce dernier sera aussi uniquement sur le CPU 1.

Sinon il faut que le programme lui même utilise les API de windows pour se régler l'affinité. Bon comme ça c'est très propre, mais la manipulation des API de windows est assez particulière et faut s'y faire. Si tu te lance là-dedans je peux poster un code d'exemple (en langage C) qui affecte tous les processus à un cpu.

Si tu utilise d'autres systèmes d'exploitations, je ne sais pas exactement, mais l'approche doit etre similaire.
 
#10
Voilà un bout de programme qui dès son lancement s'affecte au CPU 0.

Il suffit juste de rajouter ton code à la fin.

A cette adresse on trouve la documentation des api win32
Doc api win32

Si tu as d'autre questions, n'hesite pas.

+++++++++++++++++++++++++++
[c]
#include <windows.h>
#include <winbase.h>
#include <tlhelp32.h>

#define CPU_0 1
#define CPU_1 2
#define CPU_BOTH 3

// la définition de l'affinité se fait via un mask binaire :
// CPU 0 : 00000001 => 1 en décimal
// CPU 1 : 00000010 => 2 en décimal
// pour avoir les 2 :
// 00000011 => 3 en décimal

int main(int argc, char* argv[])
{
HANDLE processus ;

//Ouvrir l'accès le processus courant
processus = GetCurrentProcess() ;

//définir l'affinité
SetProcessAffinityMask(processus, CPU_0) ;

// Fermer l'accès au processus
CloseHandle(processus) ;

// Suite du programme...

return(0) ;
}
[/c]
+++++++++++++++++++++++++++
 
Auteur Sujets similaires Forum Réponses Date
P Asus A 4
wil4linux Asus A 1
wil4linux Jeux Vidéos 1
wil4linux Asus A 2
F Asus A 29

Sujets similaires

Vos accessoires ASUS

  L'atelier ASUS : témoignages

Nous vous aidons ... aidez nous.

Soutenir les forums Asus

Pour continuer à recevoir un support de qualité et gratuit dans les forums, aidez nous a supporter le coût de notre infrastructure.
Objectif
120.00 €
Collecté
35.00 €
Cette campagne s'achève dans

Parcourir les forums en musique