Come posso dire accademicamente che "un computer è più lento dell'altro"?


19

Sto scrivendo un documento di ricerca e devo sostanzialmente dire che un microcontrollore è più lento di un altro microprocessore. Tuttavia, sono preoccupato che dire semplicemente che è "più lento" non sarebbe appropriato in un documento di ricerca.

Ho ragione? È giusto dire che un processore è "più lento" o devo dire qualcos'altro? Cos'altro potrei dire? Il meglio che ho escogitato è che uno ha "meno potenza computazionale" rispetto all'altro o che il microcontrollore ha "bassa potenza computazionale". Sfortunatamente, queste espressioni non sembrano essere troppo popolari durante la ricerca online.

Quindi, quale sarebbe un modo migliore e accademicamente corretto per dirlo?


1
Penso che tu stia cercando "velocità di clock". Quindi potresti confrontare il no. di cicli di clock istruzioni simili [es. ADD] impiegano entrambi i processori e confrontando così il tempo totale impiegato da ciascun processore per eseguire l'istruzione.
Aiutatemi il

4
Molti accademici che conosco direbbero, non so, "A è più lento di B".
Raffaello

15
Non devi usare un linguaggio sofisticato nei documenti di ricerca. Devi solo dire cosa vuoi dire e dirlo con precisione.
David Richerby,

Non è come se stessi scrivendo una domanda di brevetto, vero? Dovresti solo essere inequivocabile e preciso, anche se non necessariamente conciso . Alla gente piacciono le ripetizioni sottili, i riassunti e l'enfasi, purché riguardino questioni a cui sono interessati.
Archimedix,

1
È un micro controller, è un microprocessore? Se non riesci nemmeno a deciderlo, sarei preoccupato solo leggendo che uno è "più lento".
gnasher729,

Risposte:


39

Fammi vedere se riesco a chiarire alcuni potenziali malintesi qui.

A volte le persone pensano che quando scrivono un documento di ricerca devono usare un linguaggio fantasioso: non basta dire semplicemente cosa significano, ma piuttosto, deve essere scritto in codice accademico con un linguaggio più complesso. Oppure, pensano che l'uso di parole più grandi le farà sembrare più autorevoli. Questo non è il caso. Semmai, porta a documenti eccessivamente pomposi e inutilmente difficili da leggere.

Invece, ti suggerisco di capire cosa intendi, e poi scriverlo. Non preoccuparti troppo di come dirlo (se la parola che stai usando è OK in un documento di ricerca). Non preoccuparti di essere preciso: capisci esattamente cosa intendi, quindi sii preciso nella tua formulazione.

Hai una buona intuizione. La tua esitazione a dire solo che un processore è più lento di un altro è valida. (Ma non perché non si possa dire che una cosa sia più lenta di un'altra in un documento di ricerca.) Il problema che vedo con quella formulazione è che non è molto preciso. Ci sono molte cose che potrebbe significare "più lento".

Cosa intendi esattamente con "più lento"? Più lento in che modo? E come lo sai? Che prove hai? Puoi quantificarlo? Come misureresti la "lentezza" in modo quantitativo e difendibile?

Una volta che puoi rispondere a queste domande, puoi capire come scrivere qualcosa di più convincente nel tuo documento. Ad esempio, "il processore X è più lento del 20% sul benchmark SpecCPU rispetto al processore Y" è più preciso di "il processore X è più lento del processore Y" e sostiene la richiesta con prove.

Ma prima devi capire esattamente cosa intendi con "più lento", e perché è importante per la tua discussione, e poi puoi capire come essere più preciso in ciò che scrivi e quali prove puoi fornire per sostenere la tua affermazione .

Non dovrai sempre scrivere con questo livello di cura e precisione. A volte, quando stai solo fornendo intuizione o background, i dettagli non contano molto, e quindi puoi semplicemente dire che X è più lenta di Y. Ma se quell'affermazione gioca un ruolo chiave nel tuo articolo, forse è un parte fondamentale della motivazione per il tuo documento, oppure è una parte fondamentale del ragionamento che sta alla base del design del tuo sistema - quindi dovresti cercare di essere il più preciso possibile e fornire prove per l'affermazione.


1
Sono d'accordo; quantificare . Come si può vedere in molti benchmark di videogiochi, la CPU X potrebbe essere più veloce della CPU Y in alcuni test, ma più lenta in altri. Se dici "X è più lento di Y quando fai A", dovrebbe essere sufficientemente oggettivo e verificabile.
Doktor J,

@DoktorJ Se solo la CPU fosse l'unico componente a determinare la velocità di esecuzione. Bisogna stare attenti a mantenere fissi tutti gli altri componenti e a sceglierli in un modo che non (dis) avvantaggia uno dei concorrenti.
Raffaello

@Raphael le uniche recensioni che vale la pena leggere sono quelle che usano sistemi altrimenti identici :) Potrebbe essere più difficile fare tra le CPU AMD / Intel perché le schede madri / i chipset non supportano necessariamente entrambi, quindi finisci con schede madri / chipset diversi. .. ma applica il mio esempio alle schede video invece!
Doktor J,

Mi sono registrato per votare questo. Di 'quello che vuoi dire, in un linguaggio chiaro.
frodoskywalker,

2

Affermare che un microprocessore ha una "velocità" è oggi molto, molto difficile.

Puoi guardare la frequenza di clock, che al giorno d'oggi è per lo più un numero insignificante. Soprattutto perché i microprocessori non hanno più una frequenza di clock, ma funzionano a velocità variabili a seconda di molte circostanze. Puoi guardare il numero di core, che è anche insignificante se non sappiamo quanti core può usare l'applicazione. Puoi guardare l'architettura del computer e fare affidamento sulle affermazioni dei produttori di velocità. La memoria del computer può avere velocità diverse. Se non ha memoria sufficiente, il sistema operativo avvia lo scambio di memoria che richiede tempo.

Se dicessi "questo microprocessore è più lento", senza un certo motivo per cui è più lento per l'applicazione che ti interessa, sarei dubbioso e penso che potresti non sapere di cosa stai parlando. Se dicessi "ha meno potere computazionale", penso che stai cercando di fare il bluff attraverso il giornale. Se l'avessi chiamato "meno performante" come suggerito, tutti i dubbi dalla mia parte sarebbero spariti.

Annota nel tuo articolo quali modelli di microprocessore stai confrontando (hanno tutti nomi esatti in modo che chiunque sia interessato possa comunque cercare i dettagli), fornire tutte le specifiche rilevanti (architettura, velocità di clock, numero di core, quantità di L1, L2 e L3 cache) e spiega perché uno è più lento per lo scopo di cui stai discutendo, sulla base di questi dati.


0

Probabilmente dovrai prendere una serie di programmi, compilare ed eseguire sulle varie piattaforme e citare un numero "speedup" per l'uno rispetto all'altro per ciascun programma. Si potrebbe dare un numero MIPS semplicistico (throughput in milioni di istruzioni al secondo) per un processore rispetto a un altro, ma ha senso solo se stanno eseguendo le stesse istruzioni (presumo che non lo siano). Potresti citare la latenza fino al completamento del programma.

Il confronto tra processori è un noto gioco di marketing. In realtà non hai un ordinamento ben definito a meno che tu non abbia un ampio confronto che dice la stessa cosa in molti confronti.


Bene, il documento che sto scrivendo si concentra su qualcos'altro oltre ai microcontrollori rispetto ai microprocessori, quindi, vorrei evitare di inserire numeri che non sono troppo rilevanti per l'intero documento; Vorrei dire che i microcontrollori sono "più lenti" e passano al punto principale.
Maksimiliāns,

1
Puoi citare i numeri di riferimento pubblicati e andare avanti; prendendo atto se questi test sono stati eseguiti da shill del fornitore o meno. (Si noti che gli analisti indipendenti sono spesso "a gettoni" in una certa misura, quindi i numeri potrebbero non significare molto.)
Rob

0

Questa è una risposta alla domanda che hai posto invece della domanda a cui tieni davvero, ma sembrava un esercizio divertente: come si potrebbe tentare di "provare" rigorosamente (per quanto possibile) che un computer è più lento di un altro?

Ho pensato a un modo: scrivi una macchina virtuale che simula il processore "lento" ed eseguilo sul processore "veloce". Se si può sostenere che qualsiasi operazione eseguita dal processore "lento" richiede almeno il tempo della stessa operazione eseguita dalla macchina virtuale sul processore veloce, allora si è dimostrato che è più lento. Perché anche se esiste un programma A che impiega più tempo a funzionare direttamente sul processore "veloce", possiamo sempre eseguire A sulla macchina virtuale sul processore "veloce". Quindi, per qualsiasi programma, il processore "veloce" può eseguirlo più velocemente scegliendo l'opzione migliore per eseguirlo nativamente o sulla VM.

Certo, dimostrare la parte "se puoi discutere ..." sarebbe incredibilmente complicato per una macchina moderna. Ma forse è possibile discutere confrontando ciascuna operazione primitiva (come ogni istruzione della macchina) in entrambi i casi. (Problemi come dimensioni della cache diverse renderebbero questo inutile.) Un altro problema è che in pratica, sapere se un programma verrà eseguito più velocemente su un processore o l'altro potrebbe essere indecidibile, ma in teoria hai ancora dimostrato che un processore è più veloce del altro.


1
In pratica, è improbabile che tu sia in grado di "argomentare" (nel senso di una prova matematica) che qualsiasi operazione eseguita dal processore X richiede almeno il tempo di quella stessa operazione eseguita sul processore Y. Le prestazioni dei moderni processori è così complesso - con gli effetti della memorizzazione nella cache, la previsione del ramo e così via - che questo è senza speranza. Pertanto, il tuo suggerimento non è così utile come potrebbe sembrare a prima vista. Realisticamente, di solito è possibile fare questo tipo di confronti solo attraverso esperimenti (ad es. Con benchmark) piuttosto che mediante prove matematiche / analitiche.
DW

@DW, sono completamente d'accordo.
usul

0

Puoi davvero dirlo subito. Stai finendo di farlo, lento è la parola giusta per questo. Tuttavia, un contesto più formale sarebbe positivo.

Come esempio:

X prove supportano che Y processi a una velocità più lenta rispetto a Z


E anche "a bassa velocità" non è necessario, dal momento che lento si riferisce alla velocità per definizione.
David Richerby,

-4

"meno performante" è un ottimo modo per dirlo, se le esatte prestazioni non influiscono sui risultati. Ad esempio, potresti scrivere qualcosa del tipo:

La tabella X mostra che questa implementazione viene eseguita in tempo reale sul processore Xeon utilizzato per il benchmarking. Se si dovesse usare un processore meno performante, come un microcontrollore ARM Cortex M popolare nei sistemi embedded alimentati a batteria, si dovrebbero studiare ulteriori ottimizzazioni.

Il termine "meno performante" racchiude ordinatamente tutti i fattori che ti riguardano: velocità di clock, efficienza architettonica, dimensioni della cache, latenza della memoria, ecc.


2
"Performant" non è ampiamente accettato come una parola in inglese, quindi non sono affatto d'accordo sul fatto che sia "un ottimo modo per dirlo". Cosa c'è di sbagliato nell'usare la normale frase inglese "prestazioni inferiori"?
David Richerby,

1
@David perché "performant" è la parola giusta per parlare di velocità. D'altro canto, le "prestazioni" comprendono non solo la velocità, ma anche la qualità dei risultati, la correttezza, la robustezza, ecc.
Ben Voigt,

1
Non riesco a trovare una definizione di "performant" da nessuna parte. In quanto tale, posso solo supporre che significhi "avere prestazioni". Solo che stai dicendo che in qualche modo non significa questo.
David Richerby,

en.wiktionary.org/wiki/performant dice che è 'gergo' - come se fosse una brutta cosa!
Rob Cranfill,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.