Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2016, 21:49   #11
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

1/GFlops=1/(1 GFlop/c) используем правило дробей. с/1 GFlop

Цитата:
Частота процессора должна быть, как минимум 7,5 террагерц.
У меня частота менее 3 ГГц однако 750 GFlops имею.

Цитата:
И, как я говорил выше,одна операция, делается как минимум за 10 тактов.
Так я это и учёл.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 19.02.2016, 22:25   #12
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
1/GFlops=1/(1 GFlop/c) используем правило дробей. с/1 GFlop


У меня частота менее 3 ГГц однако 750 GFlops имею.

Так я это и учёл.
Проснись и пой. Флопс.
единица, используемая для измерения производительности компьютеров, показывающая, сколько операций с плавающей запятой в секунду выполняет данная вычислительная система.
Цитата:
используем правило дробей.
Используем. 1 флопс = 1 операция с плавающей запятой в секунду. Тактовая частота процессора = 10 герц и больше. Да, чё я тут распинаюсь, если у чела производительность 750 гигафлопс... .
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 19.02.2016 в 22:30.
Smitt&Wesson вне форума Ответить с цитированием
Старый 19.02.2016, 23:57   #13
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Написал простой тест генерации. Запустил тест.
2 000 000 000 000 генерируется за 60 секунд плюс минус 2 секунды
Дроби.
2 000 000 000 000 000 генерируется за 1000 минут или 16,6 часа.
Поднимать скорость ещё в 2 раза не хочу.

Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    TrackBar1: TTrackBar;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


  TMyThread= class(TThread)
  private

  protected

  public
    counter:Integer;
    procedure Execute; override;
    procedure ReDraw;

  end;

var
  Form1: TForm1;
  StartTime, StopTime:Integer;
  Sum:Integer;
const
  MainLoop=1000*1000*1000;
  MidleLoop=200;
  ShortLoop=10;
implementation

{$R *.dfm}


function LongGen1(var Goal:UInt64; Start:UInt64; Count:Integer):Boolean;
// Перебор чисел по порятку
var i:Integer;
var Goal1:UInt64;
begin
Result:=False;
Goal:=Start;
Goal1:=Goal;;
for i:= 0  to Count-1 do
  begin
   Inc(Goal1);
  end;
Goal:=Goal1;
Result:=False;
end;

function LongGen2(var Goal:UInt64; Start:UInt64; Count:Integer):Boolean;
// Перебор чисел по порятку
var i:Integer;
var Goal1:UInt64;
begin
Result:=False;
Goal:=Start;
Goal1:=Goal;;
Count:= Count div 16;
for i:= 0  to Count-1 do
  begin
   Inc(Goal1);
   Inc(Goal1);
   Inc(Goal1);
   Inc(Goal1);
   Inc(Goal1);
   Inc(Goal1);
   Inc(Goal1);
   Inc(Goal1);

   Inc(Goal1);
   Inc(Goal1);
   Inc(Goal1);
   Inc(Goal1);
   Inc(Goal1);
   Inc(Goal1);
   Inc(Goal1);
   Inc(Goal1);
  end;
Goal:=Goal1;
Result:=False;
end;

function LongGen3(var Goal:UInt64; Start:UInt64; Count:Integer):Boolean;
// Перебор чисел по порятку
var i:Integer;
var Goal1,Goal2:UInt64;
begin
Result:=False;
Goal:=Start;
Count:= Count div 16;
Goal1:=Goal;
Goal2:=Goal1+1;
for i:= 0  to Count-1 do
  begin
    Inc(Goal1,2); Inc(Goal2,2);
    Inc(Goal1,2); Inc(Goal2,2);
    Inc(Goal1,2); Inc(Goal2,2);
    Inc(Goal1,2); Inc(Goal2,2);
    Inc(Goal1,2); Inc(Goal2,2);
    Inc(Goal1,2); Inc(Goal2,2);
    Inc(Goal1,2); Inc(Goal2,2);
    Inc(Goal1,2); Inc(Goal2,2);
  end;
Goal:=Goal2;
Result:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 Woker:TMyThread;
 i:Integer;
begin
 TrackBar1.Position:=0;
 StartTime:=GetTickCount;
 Sum:=0;
 for i:=0 to ShortLoop-1 do
   begin
   Woker:=TMyThread.Create(true);
   Woker.counter:=i*MidleLoop;
   Woker.Suspended:=False;
   end;
end;

{ TMyThead }

procedure TMyThread.Execute;
var
  i:Integer;
  Count:Integer;
  Start:UInt64;
  Last:UInt64;
begin
// while not Terminated do
     begin
     Count:=MainLoop;
     Start:=UInt64(Counter)*Count;
     Last:=0;
     for i:=0 to MidleLoop-1 do
       begin
       Self.Synchronize(ReDraw);
       if LongGen3(Last, Start, Count) then
          exit;
       Start:=Last;
       Inc(Counter);
       end;
      Inc(Sum,Counter);
      Self.Synchronize(ReDraw);
     end;
end;

procedure TMyThread.ReDraw;
var dt:Real;
begin
  StopTime:=GetTickCount;
  dt:=(StopTime-StartTime)/1000;
  Form1.TrackBar1.Position:=Form1.TrackBar1.Position+1;
  Form1.Caption:=Format('GPass/s %.2f; dt=%.2f s',[Form1.TrackBar1.Position/dt, dt]);
end;

end.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 20.02.2016 в 00:01.
Pavia вне форума Ответить с цитированием
Старый 20.02.2016, 00:35   #14
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Ну, ребяты... Я не знаю.
Написал кривую прогу левой пяткой. Вроде работает...



Поэкспериментировать кто-нить хочет? гыгыгы...

305.png

При написании юзал только стандартные компоненты!
Без ГМО и нитратов!
Вложения
Тип файла: zip Прога с исходником.7z.zip (1.15 Мб, 14 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 20.02.2016 в 00:46.
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как записать в Екселе цифры c степенью или индексом, так чтоб цифры считало, индексы (степень) игнор Andrew_K1982 Microsoft Office Excel 7 06.03.2013 23:10
Сгенерировать матрицу Татьяна123456 Общие вопросы C/C++ 0 14.11.2012 21:32
задача - найти произведение первой цифры целой части и третей цифры дробной части вещественного числа. LAZARUS maks22 Lazarus, Free Pascal, CodeTyphon 2 30.01.2012 19:53
сгенерировать звуковой файл NickolayNest Общие вопросы C/C++ 14 21.12.2011 20:07
Сортирует цифры по строкам, а надо чтобы сортировала цифры , записанные через пробелы Алексей_xXx Помощь студентам 14 06.05.2009 17:42