Jak mogę powiedzieć naukowo, że „jeden komputer jest wolniejszy od drugiego”?


19

Piszę artykuł badawczy i muszę zasadniczo powiedzieć, że jeden mikrokontroler jest wolniejszy niż inny mikroprocesor. Martwię się jednak, że samo powiedzenie, że jest „wolniejsze”, nie byłoby właściwe w pracy badawczej.

Czy mam rację? Czy można powiedzieć, że jeden procesor jest „wolniejszy”, czy muszę powiedzieć coś innego? Co jeszcze mogę powiedzieć? Najlepsze, co wymyśliłem, to to, że jeden ma „mniejszą moc obliczeniową” niż drugi lub że mikrokontroler ma „niską moc obliczeniową”. Niestety, te wyrażenia nie wydają się zbyt popularne podczas wyszukiwania online.

Więc jaki byłby lepszy i naukowo poprawny sposób na powiedzenie tego?


1
Myślę, że szukasz „częstotliwości zegara”. Wtedy możesz porównać nie. cykli zegarowych podobne instrukcje [np. ADD] zajmują oba procesory i tym samym porównują całkowity czas potrzebny każdemu procesorowi na wykonanie instrukcji.
Proszę o pomoc

4
Większość znanych mi naukowców powiedziałaby, że nie wiem, „A jest wolniejsze niż B”.
Raphael

15
Nie musisz używać wymyślnego języka w pracach badawczych. Musisz tylko powiedzieć, co masz na myśli i powiedzieć to dokładnie.
David Richerby,

To nie tak, jakbyś pisał wniosek patentowy, prawda? Powinieneś być jednoznaczny i precyzyjny, choć niekoniecznie zwięzły . Ludzie lubią subtelne powtórzenia, streszczenia i akcenty, o ile dotyczą one kwestii, którymi są zainteresowani.
Archimedix

1
Czy to mikrokontroler, czy mikroprocesor? Jeśli nawet nie możesz się na to zdecydować, martwiłbym się, że po prostu przeczytam, że jest on „wolniejszy”.
gnasher729,

Odpowiedzi:


39

Pokażę, czy mogę tutaj wyjaśnić kilka potencjalnych nieporozumień.

Czasami ludzie myślą, że pisząc artykuł badawczy, muszą używać wymyślnego języka: nie wystarczy po prostu powiedzieć, co mają na myśli, ale raczej musi być napisany kodem akademickim w języku o bardziej złożonym brzmieniu. Lub uważają, że użycie większych słów sprawi, że będą brzmiały bardziej autorytatywnie. Nie o to chodzi. Jeśli już, to prowadzi to do nadmiernie nadętych i niepotrzebnie trudnych do przeczytania prac.

Zamiast tego sugeruję, abyś zrozumiał, co masz na myśli, a następnie napisał to. Nie przejmuj się zbytnio, jak to powiedzieć (czy słowo, którego używasz, jest w porządku w pracy naukowej). Nie martw się o precyzję: dowiedz się dokładnie, co masz na myśli, a następnie bądź precyzyjny w swoim brzmieniu.

Masz dobrą intuicję. Twoje wahanie przed powiedzeniem, że jeden procesor działa wolniej niż inny, jest uzasadnione. (Ale nie dlatego, że nie można powiedzieć, że jedna rzecz jest wolniejsza od drugiej w pracy badawczej.) Problem z tym sformułowaniem polega na tym, że nie jest on zbyt precyzyjny. Istnieje wiele rzeczy, które może oznaczać „wolniej”.

Co dokładnie rozumiesz przez „wolniejszy”? Wolniej w jaki sposób? A skąd wiesz Jakie masz dowody? Czy potrafisz to skwantyfikować? Jak oceniłbyś „powolność” w ilościowy, dający się obronić sposób?

Po udzieleniu odpowiedzi na te pytania możesz dowiedzieć się, jak napisać coś bardziej przekonującego w swoim artykule. Na przykład „procesor X jest o 20% wolniejszy w teście SpecCPU niż procesor Y” jest bardziej precyzyjny niż „procesor X jest wolniejszy niż procesor Y” i popiera to twierdzenie dowodami.

Ale najpierw musisz dokładnie zrozumieć, co rozumiesz przez „wolniej” i dlaczego ma to znaczenie dla twojej argumentacji, a następnie możesz dowiedzieć się, jak być bardziej precyzyjnym w swoim piśmie i jakie dowody możesz przedstawić na poparcie swojego oświadczenia .

Nie zawsze będziesz musiał pisać z takim poziomem staranności i precyzji. Czasami, gdy podajesz tylko intuicję lub tło, specyfika nie ma tak wielkiego znaczenia, a następnie możesz po prostu powiedzieć, że X jest wolniejszy niż Y. Ale jeśli to zdanie odgrywa kluczową rolę w twoim dokumencie - być może jest to kluczową częścią motywacji do pracy lub jest to kluczowa część rozumowania, która leży u podstaw projektu twojego systemu - wtedy powinieneś postarać się być jak najbardziej precyzyjnym i przedstawić dowody na to stwierdzenie.


1
Zgadzam się; kwantyfikować . Jak widać w wielu testach gier wideo, X CPU może być szybszy niż Y CPU w niektórych testach, ale wolniejszy w innych. Jeśli powiesz, że „X jest wolniejszy niż Y podczas wykonywania A”, powinno to być wystarczająco obiektywne i możliwe do zweryfikowania.
Doktor J

@DoktorJ Gdyby tylko CPU był jedynym komponentem determinującym szybkość wykonywania. Trzeba uważać, aby wszystkie pozostałe elementy były nieruchome i wybierać je w sposób, który nie (nie) przynosi korzyści jednemu z konkurentów.
Raphael

@Raphael jedyne recenzje, które warto przeczytać, to te, które używają w przeciwnym razie identycznych systemów :) Może być trudniej zrobić między procesorami AMD / Intel, ponieważ płyty główne / chipsety niekoniecznie obsługują oba, więc kończy się to na różnych płytach głównych / chipsetach. .. ale zamiast tego zastosuj mój przykład do kart wideo!
Doktor J

Zarejestrowałem się, aby głosować za tym. Powiedz, co masz na myśli, w prostym języku.
frodoskywalker

2

Twierdzenie, że mikroprocesor ma „prędkość”, jest obecnie bardzo, bardzo trudne.

Możesz spojrzeć na częstotliwość taktowania, która obecnie jest w większości bez znaczenia. Zwłaszcza, że ​​mikroprocesory nie mają już jednej częstotliwości taktowania, ale działają z różnymi prędkościami w zależności od wielu okoliczności. Możesz spojrzeć na liczbę rdzeni, co również nie ma znaczenia, jeśli nie wiemy, ile rdzeni może użyć aplikacja. Możesz spojrzeć na architekturę komputera i polegać na twierdzeniach producentów prędkości. Pamięć komputera może mieć różne prędkości. Jeśli nie ma wystarczającej ilości pamięci, system operacyjny zaczyna zamieniać pamięć, co zajmuje dużo czasu.

Jeśli powiesz „ten mikroprocesor jest wolniejszy”, bez jakiegoś powodu, dla którego jest on wolniejszy dla aplikacji, którą jesteś zainteresowany, byłbym wątpliwy i sądzę, że możesz nie wiedzieć, o czym mówisz. Gdybyś powiedział „ma mniej mocy obliczeniowej”, pomyślałbym, że próbujesz blefować na swój sposób. Jeśli nazwałbyś to „mniej wydajnym”, jak sugerowano, wszystkie wątpliwości po mojej stronie zniknęłyby.

Zapisz w swoim dokumencie, które modele mikroprocesorów porównujesz (wszystkie mają dokładne nazwy, aby każdy zainteresowany mógł i tak sprawdzić szczegóły), podaj wszystkie odpowiednie specyfikacje (architektura, szybkość zegara, liczba rdzeni, ilość L1, L2 i L3 pamięć podręczna) i wyjaśnij, dlaczego dysk jest wolniejszy w omawianym celu, na podstawie tych danych.


0

Prawdopodobnie musisz wziąć zestaw programów, skompilować i uruchomić na różnych platformach i podać liczbę „przyspieszenia” dla jednego lub drugiego dla każdego programu. Możesz podać uproszczony numer MIPS (przepustowość w milionach instrukcji na sekundę) dla jednego procesora w porównaniu do drugiego, ale ma to sens tylko wtedy, gdy wykonują te same instrukcje (zakładam, że nie są). Możesz podać opóźnienie do momentu zakończenia programu.

Porównanie procesorów to dobrze znana gra marketingowa. Naprawdę nie masz dobrze zdefiniowanego porządku, chyba że masz szerokie porównanie, które mówi to samo w wielu porównaniach.


Cóż, artykuł, który piszę, koncentruje się na czymś innym niż na mikrokontrolerach vs. mikroprocesorach, dlatego chciałbym uniknąć wprowadzania liczb, które nie są zbyt istotne dla całego artykułu; Chciałbym powiedzieć, że mikrokontrolery są „wolniejsze” i przechodzą do głównego punktu.
Maksimiliāns,

1
Możesz cytować opublikowane numery testów i przejść dalej; zwracając uwagę, czy testy te zostały przeprowadzone przez dostawców szylingów, czy nie. (Należy pamiętać, że niezależni analitycy często są do pewnego stopnia „obsługiwani monetą”, więc liczby mogą nie mieć większego znaczenia).
Rob

0

To jest odpowiedź na pytanie, które zadałeś, zamiast pytania, na którym ci naprawdę zależy, ale wydawało się to zabawnym ćwiczeniem: w jaki sposób ktoś mógłby rygorystycznie „udowodnić” (w miarę możliwości), że jeden komputer jest wolniejszy od drugiego?

Pomyślałem o jednym sposobie: piszesz maszynę wirtualną, która symuluje „wolny” procesor i uruchamiasz ją na „szybkim” procesorze. Jeśli możesz argumentować, że każda operacja wykonywana przez „wolny” procesor zajmuje co najmniej tyle samo czasu, co ta sama operacja wykonywana przez maszynę wirtualną na szybkim procesorze, oznacza to, że udowodniono, że jest ona wolniejsza. Ponieważ nawet jeśli jest jakiś program A, który działa dłużej na „szybkim” procesorze, zawsze możemy uruchomić A na maszynie wirtualnej na „szybkim” procesorze. Tak więc dla każdego programu „szybki” procesor może go uruchomić szybciej, wybierając lepszą opcję albo uruchamiania go natywnie, albo na maszynie wirtualnej.

Oczywiście udowodnienie części „jeśli możesz się kłócić ...” byłoby niemożliwie skomplikowane dla w pełni nowoczesnej maszyny. Być może jednak można argumentować, porównując każdą prymitywną operację (jak każdą instrukcję maszyny) w obu przypadkach. (Problemy takie jak różne rozmiary pamięci podręcznej prawdopodobnie sprawiłyby, że stałoby się to bezcelowe.) Innym problemem jest to, że w praktyce wiedza, czy program będzie działał szybciej na jednym procesorze, czy na drugim, może być nierozstrzygalna, ale nadal teoretycznie wykazałeś, że jeden procesor jest szybszy niż inny.


1
W praktyce jest mało prawdopodobne, że będziesz w stanie „argumentować” (w sensie matematycznego dowodu), że każda operacja wykonana przez procesor X zajmuje co najmniej tyle samo, co ta sama operacja na procesorze Y. Wydajność współczesnych procesorów jest tak złożony - ze skutkami buforowania, przewidywania gałęzi itd. - że jest to beznadziejne. Dlatego twoja sugestia nie jest tak przydatna, jak mogłoby się wydawać na pierwszy rzut oka. Realistycznie rzecz biorąc, zazwyczaj możliwe jest dokonywanie tego rodzaju porównań poprzez eksperyment (np. Z testami porównawczymi), a nie przez matematyczny / analityczny dowód.
DW

@DW, całkowicie się zgadzam.
usul

0

Naprawdę możesz po prostu od razu z tym skorzystać. Już to robisz, powolność to właściwe słowo. Jednak bardziej formalny kontekst byłby dobry.

Jako przykład:

Dowody X potwierdzają, że procesy Y przebiegają wolniej niż Z


I nawet „przy mniejszej prędkości” nie jest konieczne, ponieważ „slow” z definicji odnosi się do prędkości.
David Richerby

-4

„mniej wydajny” to świetny sposób na powiedzenie tego, jeśli dokładne wyniki nie wpływają na wyniki. Na przykład możesz napisać coś takiego:

Tabela X pokazuje, że ta implementacja działa w czasie rzeczywistym na procesorze Xeon używanym do testów porównawczych. Jeśli miałby zostać zastosowany mniej wydajny procesor, taki jak mikrokontroler ARM Cortex M popularny w systemach wbudowanych zasilanych bateryjnie, należy zbadać dodatkowe optymalizacje.

Termin „mniej wydajny” starannie ujmuje wszystkie czynniki mające na ciebie wpływ: szybkość zegara, wydajność architektury, rozmiary pamięci podręcznej, opóźnienie pamięci itp.


2
„Performant” nie jest powszechnie akceptowane jako słowo w języku angielskim, dlatego zdecydowanie nie zgadzam się, że jest to „świetny sposób na powiedzenie tego”. Co jest złego w używaniu zwykłego angielskiego wyrażenia „niższa wydajność”?
David Richerby,

1
@ David, ponieważ „performant” to właściwe słowo do mówienia o prędkości. Z drugiej strony „wydajność” obejmuje nie tylko szybkość, ale także jakość wyników, poprawność, solidność itp.
Ben Voigt

1
Nigdzie nie mogę znaleźć definicji „performera”. Jako taki, mogę jedynie założyć, że oznacza to „posiadanie wydajności”. Tyle że mówisz, że to jakoś nie znaczy.
David Richerby

en.wiktionary.org/wiki/performant mówi, że to „żargon” - jakby to była zła rzecz!
Rob Cranfill
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.