Newsgroup: it.comp.os.linux.development
Titolo: MEMORIA e CPU

Ciao a tutti!
PLEASE AIUTATEMI...qualsiasi indicazione suggerimento e' bene accetto!!
Spero di aver scritto al NG giusto...in caso contrario potreste indicarmi un
qualche altro NG??
Vi espongo in breve il mio problema...
Ho un cluster di workstation sul quale gira un programma parallelo in cui +
processi (uno per ogni processore)svolgono determinate analisi su dati che
gli vengono forniti da un processo master.Il problema e' il seguente:
Ogni volta che un processo finisce l'analisi di un dato, viene messo in una
coda con priorita';il master estrae il processo con la priorita' + alta e
gli assegna il dato da analizzare...per determinare la priorita' ho pensato
di utilizzare diverse caratteristiche che mi possano indicare il processo
che potrebbe risultare + veloce in quel momento...come ad esempio la % di
CPU utilizzata, la memoria libera etc...insomma tutte caratteristiche del
sistema in quel preciso momento!
Il problema e' che non conosco funzioni C o C++ che mi restituiscano tali
valori...avrei bisogno che le funzioni fossero multipiattaforma(Linux e
Windows),ossia il prg deve essere portabile...conoscete una qualche
libreria(meglio se ANSII) che contempli
cio'?????
grazie mille,
Giacomo.

 cio'?????
Sotto linux esiste la funzione getrusage, sotto win non saprei...
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"La mia teoria scientifica preferita e` quella secondo la quale gli 
 anelli di Saturno sarebbe interamente composti dai bagagli andati 
 persi nei viaggi aerei." -- Mark Russel

 sistema in quel preciso momento!
...
Per testare lo stato del sistema c'e' la libgtop. Non so se possa fare al
caso tuo ne' se possa andare sotto windoze.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.mascanc.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
DOS - Defective Operating System
IBM - I Blame Microsoft
BASIC - Bill's Attempt to Seize Industry Control
WINDOWS - Will Install Needless Data On Whole System
MICROSOFT - Most Intelligent Customers Realize Our Software Only Fools Teenagers

> cio'?????
K> Sotto linux esiste la funzione getrusage, sotto win non saprei...
GetProcessTime() e GetThreadTimes().
Il  conteggio dell'uso delle  risorse non  credo proprio  sia previsto
dallo standard  del linguaggio in quanto  sono estremamente dipendenti
dal sistema.
Hmmm, e se le librerie CILK del MIT girassero anche su un cluster ?
-- 
Gian  | main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
Uberto|                        David Korn, 1987 ioccc best one liner 
Lauri |-------------------------------------------------------------------
(aka saint) >>Vedere X-Nospam nell'header - See X-Nospam field in Header<<

 Giacomo.
cat cp
-- 
Posted from 
flopiano.mm.eutelsat.org
 [194.214.173.28] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Sotto linux esiste la funzione getrusage, sotto win non saprei...
In Windows NT si può fare in diversi modi, il migliore è sicuramente 
l'uso dei contatori prestazioni (performance counter), soprattutto 
perchè funziona anche su computer remoti (e mi pare di aver capito che 
sia uno dei requisiti)
Consiglio, se possibile, di tenere lo schedulatore su un computer 
diverso dal master: per quel poco che ho visto, la raccolta dei dati dai 
contatori prestazioni, specialmente per grosse quantità, può pesare 
parecchio sulla CPU
Ecco alcuni esempi di contatori che sarebbero utili nel caso specifico:
 - oggetto Processor, istanza _Total, contatore %Processor Time per
   l'utilizzo della CPU
 - oggetto Memory, contatore Available Bytes per la memoria libera
-- 
Nato nel vizio, morto nel supplizio
Nato nel peccato, ad entrare sia invitato