26

Re: Программное обеспечение

Хэш всё перемешает, классы будут одинаковые по объему, но значения там будут самые разные. А нужно именно непрерывные диапазоны. Проще всего отсортировать и просто брать по 1/256. Но сортировка это уже n*logN, вот этот logN хотелось бы выполнять аппаратно.

27

Re: Программное обеспечение

Вы про гистограммы говорите. Если у вас данные меняются то и ширина диапазонов будет меняться. Поэтому требование равенства площади каждого прямоугольника за счет динамической подстройки всех диапазонов для динамических данных в общем случае не выполнимо.

Если у вас есть статистическая гипотеза дрейфа диапазонов - то тогда можно составить алгоритм на основе эмпирической или алгоритмической функции (гипотезы - обычно это степени числа е).

С точки зрения физики в приложении к быстрому преобразованию Фурье - Бабочкой (при котором происходит разворот под-диапазона адреса отсчета), вы бы хотели пропускать некоторые частоты.

Поэтому гораздо проще прямо на первом этапе отфильтровать данные, которые не укладываются в равные диапазоны.


http://www.klein.zen.ru/hscool/online/sutras/Heap.html

Вы хотели бы вот эту сортировку для деревьев использовать?
У меня есть код на Си для нее. Могу сделать вам АСМ листинги этого алгоритма и можно будет посмотреть как их оптимизировать.

28

Re: Программное обеспечение

//(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * )
//( Heap.С      hscool sutra                                      c )
//(                                                                        )
//( Heap sorting -- timing is _always_ .LE. N*log N                        )
//( * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *)

//Program Heap(Input,Output);

#include <stdio.h>

#define N_MAX 10

typedef int TElement;
int  iNum=0,i,j;
TElement  elTemp;
TElement  elA[N_MAX]; //{ Source array, tree and result }


int FixTree(int iFrom,int iTo)
{
    TElement  elTop,elLeft,elRight;
    int  iFromTwice;

     elTop=elA[iFrom];

    while(1) {
         iFromTwice=iFrom*2;
         if (iFromTwice > iTo) break; 
         else {
            elLeft=elA[iFromTwice];
            if (iFromTwice==iTo) { elRight=elLeft; } else  { elRight=elA[iFromTwice+1]; }

            if ((elRight>elTop) && (elRight>elLeft)) { elA[iFrom]=elRight;  iFrom=iFromTwice+1;  } 
            else if (elLeft > elTop ) { elA[iFrom]=elLeft;   iFrom=iFromTwice; } 
            else break; 
         }
    }
     elA[iFrom]=elTop;
}

void main (int argc, char *argv []) 
{
  printf("\n");
  printf("Heap.  Array sorting by tree building.\n");

//  { Read unsorted array   }
  char str[3];
  while (iNum < N_MAX-1) {
    if(scanf("%s", str)<=0)break;
    elA[++iNum] = atoi(str);
  } 
  
  
// { Build a sorting tree  }
  for ( i= iNum >> 1;i>=1;i--) {  FixTree(i,iNum);

  printf("* %d %d: ",i,iNum);
  for (j=1; j < iNum; j++)  { printf("%d ",elA[j]); }
  printf("%d \n",elA[iNum]);

  }



//  { Display the result    }
  printf("* UnSorted array *\n  ");
  for (i=1; i< iNum; i++)  { printf("%d ",elA[i]); }
  printf("%d \n",elA[iNum]);



// { Convert tree to array }
  for (i=iNum; i>=2; i-- ) 
  { 
    elTemp=elA[1];
    elA[1]=elA[i];
    elA[i]=elTemp;
    FixTree(1,i-1);
  printf("* ");
  for (j=1; j< iNum; j++)  { printf("%d ",elA[j]); }
  printf("%d \n",elA[iNum]);
  }

//  { Display the result    }
  printf("* Sorted array *\n  ");
  for (i=1; i< iNum; i++)  { printf("%d ",elA[i]); }
  printf("%d \n",elA[iNum]);
  printf("P.S. Thank you for using our software.\n");

}

29

Re: Программное обеспечение

Без оптимизации под AMD

heap_sutras_real_2.o:     file format elf64-x86-64


Disassembly of section .text:

0000000000000000 <FixTree>:
   0:    55                       push   %rbp
   1:    48 89 e5                 mov    %rsp,%rbp
   4:    89 7d ec                 mov    %edi,-0x14(%rbp)
   7:    89 75 e8                 mov    %esi,-0x18(%rbp)
   a:    8b 45 ec                 mov    -0x14(%rbp),%eax
   d:    48 98                    cltq   
   f:    8b 04 85 00 00 00 00     mov    0x0(,%rax,4),%eax
  16:    89 45 f0                 mov    %eax,-0x10(%rbp)
  19:    8b 45 ec                 mov    -0x14(%rbp),%eax
  1c:    01 c0                    add    %eax,%eax
  1e:    89 45 fc                 mov    %eax,-0x4(%rbp)
  21:    8b 45 fc                 mov    -0x4(%rbp),%eax
  24:    3b 45 e8                 cmp    -0x18(%rbp),%eax
  27:    7f 7e                    jg     a7 <FixTree+0xa7>
  29:    8b 45 fc                 mov    -0x4(%rbp),%eax
  2c:    48 98                    cltq   
  2e:    8b 04 85 00 00 00 00     mov    0x0(,%rax,4),%eax
  35:    89 45 f4                 mov    %eax,-0xc(%rbp)
  38:    8b 45 fc                 mov    -0x4(%rbp),%eax
  3b:    3b 45 e8                 cmp    -0x18(%rbp),%eax
  3e:    75 08                    jne    48 <FixTree+0x48>
  40:    8b 45 f4                 mov    -0xc(%rbp),%eax
  43:    89 45 f8                 mov    %eax,-0x8(%rbp)
  46:    eb 12                    jmp    5a <FixTree+0x5a>
  48:    8b 45 fc                 mov    -0x4(%rbp),%eax
  4b:    83 c0 01                 add    $0x1,%eax
  4e:    48 98                    cltq   
  50:    8b 04 85 00 00 00 00     mov    0x0(,%rax,4),%eax
  57:    89 45 f8                 mov    %eax,-0x8(%rbp)
  5a:    8b 45 f8                 mov    -0x8(%rbp),%eax
  5d:    3b 45 f0                 cmp    -0x10(%rbp),%eax
  60:    7e 23                    jle    85 <FixTree+0x85>
  62:    8b 45 f8                 mov    -0x8(%rbp),%eax
  65:    3b 45 f4                 cmp    -0xc(%rbp),%eax
  68:    7e 1b                    jle    85 <FixTree+0x85>
  6a:    8b 45 ec                 mov    -0x14(%rbp),%eax
  6d:    48 98                    cltq   
  6f:    8b 55 f8                 mov    -0x8(%rbp),%edx
  72:    89 14 85 00 00 00 00     mov    %edx,0x0(,%rax,4)
  79:    8b 45 fc                 mov    -0x4(%rbp),%eax
  7c:    83 c0 01                 add    $0x1,%eax
  7f:    89 45 ec                 mov    %eax,-0x14(%rbp)
  82:    90                       nop
  83:    eb 94                    jmp    19 <FixTree+0x19>
  85:    8b 45 f4                 mov    -0xc(%rbp),%eax
  88:    3b 45 f0                 cmp    -0x10(%rbp),%eax
  8b:    7e 1d                    jle    aa <FixTree+0xaa>
  8d:    8b 45 ec                 mov    -0x14(%rbp),%eax
  90:    48 98                    cltq   
  92:    8b 55 f4                 mov    -0xc(%rbp),%edx
  95:    89 14 85 00 00 00 00     mov    %edx,0x0(,%rax,4)
  9c:    8b 45 fc                 mov    -0x4(%rbp),%eax
  9f:    89 45 ec                 mov    %eax,-0x14(%rbp)
  a2:    e9 72 ff ff ff           jmpq   19 <FixTree+0x19>
  a7:    90                       nop
  a8:    eb 01                    jmp    ab <FixTree+0xab>
  aa:    90                       nop
  ab:    8b 45 ec                 mov    -0x14(%rbp),%eax
  ae:    48 98                    cltq   
  b0:    8b 55 f0                 mov    -0x10(%rbp),%edx
  b3:    89 14 85 00 00 00 00     mov    %edx,0x0(,%rax,4)
  ba:    c9                       leaveq 
  bb:    c3                       retq   

00000000000000bc <main>:
  bc:    55                       push   %rbp
  bd:    48 89 e5                 mov    %rsp,%rbp
  c0:    53                       push   %rbx
  c1:    48 83 ec 28              sub    $0x28,%rsp
  c5:    89 7d dc                 mov    %edi,-0x24(%rbp)
  c8:    48 89 75 d0              mov    %rsi,-0x30(%rbp)
  cc:    bf 0a 00 00 00           mov    $0xa,%edi
  d1:    e8 00 00 00 00           callq  d6 <main+0x1a>
  d6:    bf 00 00 00 00           mov    $0x0,%edi
  db:    e8 00 00 00 00           callq  e0 <main+0x24>
  e0:    eb 4d                    jmp    12f <main+0x73>
  e2:    b8 00 00 00 00           mov    $0x0,%eax
  e7:    48 8d 55 e0              lea    -0x20(%rbp),%rdx
  eb:    48 89 d6                 mov    %rdx,%rsi
  ee:    48 89 c7                 mov    %rax,%rdi
  f1:    b8 00 00 00 00           mov    $0x0,%eax
  f6:    e8 00 00 00 00           callq  fb <main+0x3f>
  fb:    85 c0                    test   %eax,%eax
  fd:    7e 3d                    jle    13c <main+0x80>
  ff:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 105 <main+0x49>
 105:    83 c0 01                 add    $0x1,%eax
 108:    89 05 00 00 00 00        mov    %eax,0x0(%rip)        # 10e <main+0x52>
 10e:    8b 1d 00 00 00 00        mov    0x0(%rip),%ebx        # 114 <main+0x58>
 114:    48 8d 45 e0              lea    -0x20(%rbp),%rax
 118:    48 89 c7                 mov    %rax,%rdi
 11b:    b8 00 00 00 00           mov    $0x0,%eax
 120:    e8 00 00 00 00           callq  125 <main+0x69>
 125:    48 63 d3                 movslq %ebx,%rdx
 128:    89 04 95 00 00 00 00     mov    %eax,0x0(,%rdx,4)
 12f:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 135 <main+0x79>
 135:    83 f8 08                 cmp    $0x8,%eax
 138:    7e a8                    jle    e2 <main+0x26>
 13a:    eb 01                    jmp    13d <main+0x81>
 13c:    90                       nop
 13d:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 143 <main+0x87>
 143:    d1 f8                    sar    %eax
 145:    89 05 00 00 00 00        mov    %eax,0x0(%rip)        # 14b <main+0x8f>
 14b:    e9 b5 00 00 00           jmpq   205 <main+0x149>
 150:    8b 15 00 00 00 00        mov    0x0(%rip),%edx        # 156 <main+0x9a>
 156:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 15c <main+0xa0>
 15c:    89 d6                    mov    %edx,%esi
 15e:    89 c7                    mov    %eax,%edi
 160:    e8 00 00 00 00           callq  165 <main+0xa9>
 165:    8b 15 00 00 00 00        mov    0x0(%rip),%edx        # 16b <main+0xaf>
 16b:    8b 0d 00 00 00 00        mov    0x0(%rip),%ecx        # 171 <main+0xb5>
 171:    b8 00 00 00 00           mov    $0x0,%eax
 176:    89 ce                    mov    %ecx,%esi
 178:    48 89 c7                 mov    %rax,%rdi
 17b:    b8 00 00 00 00           mov    $0x0,%eax
 180:    e8 00 00 00 00           callq  185 <main+0xc9>
 185:    c7 05 00 00 00 00 01     movl   $0x1,0x0(%rip)        # 18f <main+0xd3>
 18c:    00 00 00 
 18f:    eb 32                    jmp    1c3 <main+0x107>
 191:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 197 <main+0xdb>
 197:    48 98                    cltq   
 199:    8b 14 85 00 00 00 00     mov    0x0(,%rax,4),%edx
 1a0:    b8 00 00 00 00           mov    $0x0,%eax
 1a5:    89 d6                    mov    %edx,%esi
 1a7:    48 89 c7                 mov    %rax,%rdi
 1aa:    b8 00 00 00 00           mov    $0x0,%eax
 1af:    e8 00 00 00 00           callq  1b4 <main+0xf8>
 1b4:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 1ba <main+0xfe>
 1ba:    83 c0 01                 add    $0x1,%eax
 1bd:    89 05 00 00 00 00        mov    %eax,0x0(%rip)        # 1c3 <main+0x107>
 1c3:    8b 15 00 00 00 00        mov    0x0(%rip),%edx        # 1c9 <main+0x10d>
 1c9:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 1cf <main+0x113>
 1cf:    39 c2                    cmp    %eax,%edx
 1d1:    7c be                    jl     191 <main+0xd5>
 1d3:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 1d9 <main+0x11d>
 1d9:    48 98                    cltq   
 1db:    8b 14 85 00 00 00 00     mov    0x0(,%rax,4),%edx
 1e2:    b8 00 00 00 00           mov    $0x0,%eax
 1e7:    89 d6                    mov    %edx,%esi
 1e9:    48 89 c7                 mov    %rax,%rdi
 1ec:    b8 00 00 00 00           mov    $0x0,%eax
 1f1:    e8 00 00 00 00           callq  1f6 <main+0x13a>
 1f6:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 1fc <main+0x140>
 1fc:    83 e8 01                 sub    $0x1,%eax
 1ff:    89 05 00 00 00 00        mov    %eax,0x0(%rip)        # 205 <main+0x149>
 205:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 20b <main+0x14f>
 20b:    85 c0                    test   %eax,%eax
 20d:    0f 8f 3d ff ff ff        jg     150 <main+0x94>
 213:    b8 00 00 00 00           mov    $0x0,%eax
 218:    48 89 c7                 mov    %rax,%rdi
 21b:    b8 00 00 00 00           mov    $0x0,%eax
 220:    e8 00 00 00 00           callq  225 <main+0x169>
 225:    c7 05 00 00 00 00 01     movl   $0x1,0x0(%rip)        # 22f <main+0x173>
 22c:    00 00 00 
 22f:    eb 32                    jmp    263 <main+0x1a7>
 231:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 237 <main+0x17b>
 237:    48 98                    cltq   
 239:    8b 14 85 00 00 00 00     mov    0x0(,%rax,4),%edx
 240:    b8 00 00 00 00           mov    $0x0,%eax
 245:    89 d6                    mov    %edx,%esi
 247:    48 89 c7                 mov    %rax,%rdi
 24a:    b8 00 00 00 00           mov    $0x0,%eax
 24f:    e8 00 00 00 00           callq  254 <main+0x198>
 254:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 25a <main+0x19e>
 25a:    83 c0 01                 add    $0x1,%eax
 25d:    89 05 00 00 00 00        mov    %eax,0x0(%rip)        # 263 <main+0x1a7>
 263:    8b 15 00 00 00 00        mov    0x0(%rip),%edx        # 269 <main+0x1ad>
 269:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 26f <main+0x1b3>
 26f:    39 c2                    cmp    %eax,%edx
 271:    7c be                    jl     231 <main+0x175>
 273:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 279 <main+0x1bd>
 279:    48 98                    cltq   
 27b:    8b 14 85 00 00 00 00     mov    0x0(,%rax,4),%edx
 282:    b8 00 00 00 00           mov    $0x0,%eax
 287:    89 d6                    mov    %edx,%esi
 289:    48 89 c7                 mov    %rax,%rdi
 28c:    b8 00 00 00 00           mov    $0x0,%eax
 291:    e8 00 00 00 00           callq  296 <main+0x1da>
 296:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 29c <main+0x1e0>
 29c:    89 05 00 00 00 00        mov    %eax,0x0(%rip)        # 2a2 <main+0x1e6>
 2a2:    e9 dd 00 00 00           jmpq   384 <main+0x2c8>
 2a7:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 2ad <main+0x1f1>
 2ad:    89 05 00 00 00 00        mov    %eax,0x0(%rip)        # 2b3 <main+0x1f7>
 2b3:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 2b9 <main+0x1fd>
 2b9:    48 98                    cltq   
 2bb:    8b 04 85 00 00 00 00     mov    0x0(,%rax,4),%eax
 2c2:    89 05 00 00 00 00        mov    %eax,0x0(%rip)        # 2c8 <main+0x20c>
 2c8:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 2ce <main+0x212>
 2ce:    8b 15 00 00 00 00        mov    0x0(%rip),%edx        # 2d4 <main+0x218>
 2d4:    48 98                    cltq   
 2d6:    89 14 85 00 00 00 00     mov    %edx,0x0(,%rax,4)
 2dd:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 2e3 <main+0x227>
 2e3:    83 e8 01                 sub    $0x1,%eax
 2e6:    89 c6                    mov    %eax,%esi
 2e8:    bf 01 00 00 00           mov    $0x1,%edi
 2ed:    e8 00 00 00 00           callq  2f2 <main+0x236>
 2f2:    b8 00 00 00 00           mov    $0x0,%eax
 2f7:    48 89 c7                 mov    %rax,%rdi
 2fa:    b8 00 00 00 00           mov    $0x0,%eax
 2ff:    e8 00 00 00 00           callq  304 <main+0x248>
 304:    c7 05 00 00 00 00 01     movl   $0x1,0x0(%rip)        # 30e <main+0x252>
 30b:    00 00 00 
 30e:    eb 32                    jmp    342 <main+0x286>
 310:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 316 <main+0x25a>
 316:    48 98                    cltq   
 318:    8b 14 85 00 00 00 00     mov    0x0(,%rax,4),%edx
 31f:    b8 00 00 00 00           mov    $0x0,%eax
 324:    89 d6                    mov    %edx,%esi
 326:    48 89 c7                 mov    %rax,%rdi
 329:    b8 00 00 00 00           mov    $0x0,%eax
 32e:    e8 00 00 00 00           callq  333 <main+0x277>
 333:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 339 <main+0x27d>
 339:    83 c0 01                 add    $0x1,%eax
 33c:    89 05 00 00 00 00        mov    %eax,0x0(%rip)        # 342 <main+0x286>
 342:    8b 15 00 00 00 00        mov    0x0(%rip),%edx        # 348 <main+0x28c>
 348:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 34e <main+0x292>
 34e:    39 c2                    cmp    %eax,%edx
 350:    7c be                    jl     310 <main+0x254>
 352:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 358 <main+0x29c>
 358:    48 98                    cltq   
 35a:    8b 14 85 00 00 00 00     mov    0x0(,%rax,4),%edx
 361:    b8 00 00 00 00           mov    $0x0,%eax
 366:    89 d6                    mov    %edx,%esi
 368:    48 89 c7                 mov    %rax,%rdi
 36b:    b8 00 00 00 00           mov    $0x0,%eax
 370:    e8 00 00 00 00           callq  375 <main+0x2b9>
 375:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 37b <main+0x2bf>
 37b:    83 e8 01                 sub    $0x1,%eax
 37e:    89 05 00 00 00 00        mov    %eax,0x0(%rip)        # 384 <main+0x2c8>
 384:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 38a <main+0x2ce>
 38a:    83 f8 01                 cmp    $0x1,%eax
 38d:    0f 8f 14 ff ff ff        jg     2a7 <main+0x1eb>
 393:    b8 00 00 00 00           mov    $0x0,%eax
 398:    48 89 c7                 mov    %rax,%rdi
 39b:    b8 00 00 00 00           mov    $0x0,%eax
 3a0:    e8 00 00 00 00           callq  3a5 <main+0x2e9>
 3a5:    c7 05 00 00 00 00 01     movl   $0x1,0x0(%rip)        # 3af <main+0x2f3>
 3ac:    00 00 00 
 3af:    eb 32                    jmp    3e3 <main+0x327>
 3b1:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 3b7 <main+0x2fb>
 3b7:    48 98                    cltq   
 3b9:    8b 14 85 00 00 00 00     mov    0x0(,%rax,4),%edx
 3c0:    b8 00 00 00 00           mov    $0x0,%eax
 3c5:    89 d6                    mov    %edx,%esi
 3c7:    48 89 c7                 mov    %rax,%rdi
 3ca:    b8 00 00 00 00           mov    $0x0,%eax
 3cf:    e8 00 00 00 00           callq  3d4 <main+0x318>
 3d4:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 3da <main+0x31e>
 3da:    83 c0 01                 add    $0x1,%eax
 3dd:    89 05 00 00 00 00        mov    %eax,0x0(%rip)        # 3e3 <main+0x327>
 3e3:    8b 15 00 00 00 00        mov    0x0(%rip),%edx        # 3e9 <main+0x32d>
 3e9:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 3ef <main+0x333>
 3ef:    39 c2                    cmp    %eax,%edx
 3f1:    7c be                    jl     3b1 <main+0x2f5>
 3f3:    8b 05 00 00 00 00        mov    0x0(%rip),%eax        # 3f9 <main+0x33d>
 3f9:    48 98                    cltq   
 3fb:    8b 14 85 00 00 00 00     mov    0x0(,%rax,4),%edx
 402:    b8 00 00 00 00           mov    $0x0,%eax
 407:    89 d6                    mov    %edx,%esi
 409:    48 89 c7                 mov    %rax,%rdi
 40c:    b8 00 00 00 00           mov    $0x0,%eax
 411:    e8 00 00 00 00           callq  416 <main+0x35a>
 416:    bf 00 00 00 00           mov    $0x0,%edi
 41b:    e8 00 00 00 00           callq  420 <main+0x364>
 420:    48 83 c4 28              add    $0x28,%rsp
 424:    5b                       pop    %rbx
 425:    c9                       leaveq 
 426:    c3                       retq   

Disassembly of section .bss:

0000000000000000 <iNum>:
   0:    00 00                    add    %al,(%rax)
    ...

Disassembly of section .rodata:

0000000000000000 <.rodata>:
   0:    48                       rex.W
   1:    65                       gs
   2:    61                       (bad)  
   3:    70 2e                    jo     33 <.rodata+0x33>
   5:    20 20                    and    %ah,(%rax)
   7:    41 72 72                 rex.B jb     7c <.rodata+0x7c>
   a:    61                       (bad)  
   b:    79 20                    jns    2d <.rodata+0x2d>
   d:    73 6f                    jae    7e <.rodata+0x7e>
   f:    72 74                    jb     85 <.rodata+0x85>
  11:    69 6e 67 20 62 79 20     imul   $0x20796220,0x67(%rsi),%ebp
  18:    74 72                    je     8c <.rodata+0x8c>
  1a:    65 65 20 62 75           and    %ah,%gs:0x75(%rdx)
  1f:    69 6c 64 69 6e 67 2e     imul   $0x2e676e,0x69(%rsp,%riz,2),%ebp
  26:    00 
  27:    25 73 00 2a 20           and    $0x202a0073,%eax
  2c:    25 64 20 25 64           and    $0x64252064,%eax
  31:    3a 20                    cmp    (%rax),%ah
  33:    00 25 64 20 00 25        add    %ah,0x25002064(%rip)        # 2500209d <main+0x25001fe1>
  39:    64 20 0a                 and    %cl,%fs:(%rdx)
  3c:    00 2a                    add    %ch,(%rdx)
  3e:    20 55 6e                 and    %dl,0x6e(%rbp)
  41:    53                       push   %rbx
  42:    6f                       outsl  %ds:(%rsi),(%dx)
  43:    72 74                    jb     b9 <FixTree+0xb9>
  45:    65 64 20 61 72           and    %ah,%fs:%gs:0x72(%rcx)
  4a:    72 61                    jb     ad <FixTree+0xad>
  4c:    79 20                    jns    6e <.rodata+0x6e>
  4e:    2a 0a                    sub    (%rdx),%cl
  50:    20 20                    and    %ah,(%rax)
  52:    00 2a                    add    %ch,(%rdx)
  54:    20 00                    and    %al,(%rax)
  56:    2a 20                    sub    (%rax),%ah
  58:    53                       push   %rbx
  59:    6f                       outsl  %ds:(%rsi),(%dx)
  5a:    72 74                    jb     d0 <main+0x14>
  5c:    65 64 20 61 72           and    %ah,%fs:%gs:0x72(%rcx)
  61:    72 61                    jb     c4 <main+0x8>
  63:    79 20                    jns    85 <.rodata+0x85>
  65:    2a 0a                    sub    (%rdx),%cl
  67:    20 20                    and    %ah,(%rax)
  69:    00 00                    add    %al,(%rax)
  6b:    00 00                    add    %al,(%rax)
  6d:    00 00                    add    %al,(%rax)
  6f:    00 50 2e                 add    %dl,0x2e(%rax)
  72:    53                       push   %rbx
  73:    2e 20 54 68 61           and    %dl,%cs:0x61(%rax,%rbp,2)
  78:    6e                       outsb  %ds:(%rsi),(%dx)
  79:    6b 20 79                 imul   $0x79,(%rax),%esp
  7c:    6f                       outsl  %ds:(%rsi),(%dx)
  7d:    75 20                    jne    9f <FixTree+0x9f>
  7f:    66 6f                    outsw  %ds:(%rsi),(%dx)
  81:    72 20                    jb     a3 <FixTree+0xa3>
  83:    75 73                    jne    f8 <main+0x3c>
  85:    69 6e 67 20 6f 75 72     imul   $0x72756f20,0x67(%rsi),%ebp
  8c:    20 73 6f                 and    %dh,0x6f(%rbx)
  8f:    66                       data16
  90:    74 77                    je     109 <main+0x4d>
  92:    61                       (bad)  
  93:    72 65                    jb     fa <main+0x3e>
  95:    2e                       cs
    ...

Disassembly of section .comment:

0000000000000000 <.comment>:
   0:    00 47 43                 add    %al,0x43(%rdi)
   3:    43 3a 20                 rex.XB cmp    (%r8),%spl
   6:    28 44 65 62              sub    %al,0x62(%rbp,%riz,2)
   a:    69 61 6e 20 34 2e 34     imul   $0x342e3420,0x6e(%rcx),%esp
  11:    2e                       cs
  12:    35 2d 38 29 20           xor    $0x2029382d,%eax
  17:    34 2e                    xor    $0x2e,%al
  19:    34 2e                    xor    $0x2e,%al
  1b:    35                       .byte 0x35
    ...

Disassembly of section .eh_frame:

0000000000000000 <.eh_frame>:
   0:    14 00                    adc    $0x0,%al
   2:    00 00                    add    %al,(%rax)
   4:    00 00                    add    %al,(%rax)
   6:    00 00                    add    %al,(%rax)
   8:    01 7a 52                 add    %edi,0x52(%rdx)
   b:    00 01                    add    %al,(%rcx)
   d:    78 10                    js     1f <.eh_frame+0x1f>
   f:    01 1b                    add    %ebx,(%rbx)
  11:    0c 07                    or     $0x7,%al
  13:    08 90 01 00 00 18        or     %dl,0x18000001(%rax)
  19:    00 00                    add    %al,(%rax)
  1b:    00 1c 00                 add    %bl,(%rax,%rax,1)
  1e:    00 00                    add    %al,(%rax)
  20:    00 00                    add    %al,(%rax)
  22:    00 00                    add    %al,(%rax)
  24:    bc 00 00 00 00           mov    $0x0,%esp
  29:    41 0e                    rex.B (bad)  
  2b:    10 43 86                 adc    %al,-0x7a(%rbx)
  2e:    02 0d 06 00 00 00        add    0x6(%rip),%cl        # 3a <.eh_frame+0x3a>
  34:    18 00                    sbb    %al,(%rax)
  36:    00 00                    add    %al,(%rax)
  38:    38 00                    cmp    %al,(%rax)
  3a:    00 00                    add    %al,(%rax)
  3c:    00 00                    add    %al,(%rax)
  3e:    00 00                    add    %al,(%rax)
  40:    6b 03 00                 imul   $0x0,(%rbx),%eax
  43:    00 00                    add    %al,(%rax)
  45:    41 0e                    rex.B (bad)  
  47:    10 43 86                 adc    %al,-0x7a(%rbx)
  4a:    02 0d 06 51 83 03        add    0x3835106(%rip),%cl        # 3835156 <main+0x383509a>

30

Re: Программное обеспечение

Автор: *


Видимо у Вас данные простые. А у меня потенциальные функции бесполезны. Например в пространстве компьютерных программ какие могут быть потенциалы и ядра? На какое такое "ядро" нужно "умножить" алгоритм сортировки чтобы из него получить алгоритм фурье?

Почитайте книгу Глушкова "Основы кибернетики". Там в частности на 27 странице указано что для алгоритмов можно ввести 3 операции Объединение, Разветвление, Повторение.

Так же на 10 странице введено понятие оператора (алгоритма) и отображений (компиляторов и декомпиляторов) и сопряженного оператора (например на языке ассемблера). Введено понятие Нормального алгоритма на 19 странице и указано чем элементарные узнаватели (условные терминалы) отличаются от элементарных операторов (Форт примитивы).

Глушков так же как и я считает что Нормальные алгоритмы сводятся к конечным автоматам или регулярным выражениям. Но вместе с тем там же доказано, что алгоритм не может определить сам область своих входных значений - самоприменимость (автоматические тесты полного покрытия не возможны).

Так же указано важное следствие что для собственного отображения алгоритм может быть не самоприменим. Другими словами если мы взяли регулярное выражение в питоне (которое меняет сам текст питона - лямбда функция) и сконвертировали в Брайн-Фак, то отображение в Брайн-факе работать не будет.

Вот в этом и есть ограничение ИИ. Дальше он говорит о статистике которую собирает управляющая система и излагает теорию нейросетей.

До 60 года, книга была издана только для служебного пользования. Видимо поэтому те кто родились раньше, не смогли ее вовремя прочитать и продолжают верить в ИИ без оговорок ....

Так же есть ссылки на полугруппы (классы преобразования копиляторов) и груп (компиляторы и декомпиляторы, которые при умножении последовательно тождественны).

Приведена алгоритмическая схема Колмогорова-Успенского с детальным изложением как "вклеить" (умножить) на ядро ("информационный комплекс"). Чем то напоминает подход "Гермионных сетей".

В общем целом на первых страницах дано определение возможности ИИ на основе конечного алфавита в силу как раз грубости Сенсоров (конечного набора состояний).

Если бы сенсоры были идеальны, конечных вычислений получить нельзя на современной архитектуре (не квантовый компьютер) и соответственно построить нормальный алгоритм то же нельзя, и построить нормальный достраивающийся само-применимый алгоритм так же нельзя.

Будучи первокурсником я не понимал как в математике вводится бесконечность. Поэтому переформулировал функциональный анализ Коши для конечных множеств. Это обстоятельство в корне меняет свойство порождаемых алгебр (в частности, выводы о невозрастании и неубывании функции не верные получаются). То есть предсказать поведение функции на основе анализа окна или отсчета - нельзя.

31

Re: Программное обеспечение

Автор: *
Вот ещё операция, вообще не знаю как делать. Допустим есть миллион чисел, можно легко найти минимум, максимум и среднее. А если нужно разбить не на 2, а на 256 диапазонов? Чтобы в каждом было одинаковое количество элементов. Конечно полезнее поискать там максимумы или другие значимые точки, но иногда нужно просто упростить, как бы оцифровать в 8 бит.

Гуглите про median cut.
Десятилетиями уже каждом растровом графическом редакторе используется, для оптимизации цветовой палитры при переходе от бОльшего числа цветов к меньшему.

32

Re: Программное обеспечение

Более того есть префиксы к командам, которые сами флаги выставляют, не надо даже операций сравнения.

В Швейцарском технологическом уже давно поняли - современные Операционные системы это пережиток. Все механизмы есть аппаратно в SoC. Можно писать в стиле микроконтроллера, на одних ситуациях (исключениях и прерываниях от переферии). Даже главного цикла не надо :-)

Посмотрите слайд 107. Четно написано ОС - не нужна для SoC.

http://oberoncore.ru/_media/library/fri … 0_2013.pdf

33

Re: Программное обеспечение

Автор: *
Гуглите про median cut.
Десятилетиями уже каждом растровом графическом редакторе используется, для оптимизации цветовой палитры при переходе от бОльшего числа цветов к меньшему.

Это понятно. Я имел ввиду, что иногда был бы полезен аппаратный ассоциативный массив. L1 кэш в процессоре наверняка по полному адресу сравнивает, там например 16000 элементов. Видимо по энергопотреблению не очень затратно. Мне бы хотя бы 16. Можно было например не возиться с указателями и деревьями, а просто добавлять элемент в конец. Потом находить тоже без оптимизированного блуждания по алгоритму и параллельного перекладывания посторонних вспомогательных указателей.

А в редакторах кстати довольно плохо работает. Я пару раз в ручную палитру подбирал. Он человеческий фактор не учитывает. Например листья дерева всё равно шум, хватит зеленого, черного и белого. А для лица нужно много цветов, для бликов и теней. Причем важен фон, цвет лица относительно него смотрится, нельзя жестко задать розовые и желтые. Если фон синий, то лицо может быть тоже синее, только чуть-чуть к красному, и уже воспринимается как нормальное. То есть алгоритм должен сначала суметь найти лицо, не зная какого оно цвета. А если фон пёстрый лицу может быть вообще ни одного своего цвета не достанется. В общем эти алгоритмы может и красивые, но совсем глупые. И палитры стандартные тоже кстати не понятно кто составлял, одна психоделика, ядовитые цвета, которых  в природе нет. Тоже видимо старались хорошо покрыть RGB пространство, а не реальные расцветки.

34

Re: Программное обеспечение

Автор: *

Я имел ввиду, что иногда был бы полезен аппаратный ассоциативный массив. L1 кэш в процессоре наверняка по полному адресу сравнивает, там например 16000 элементов. Видимо по энергопотреблению не очень затратно. Мне бы хотя бы 16. Можно было например не возиться с указателями и деревьями, а просто добавлять элемент в конец. Потом находить тоже без оптимизированного блуждания по алгоритму и параллельного перекладывания посторонних вспомогательных указателей.

Нет не по полному адресу а по части виртуального адреса. Насколько большие или маленькие страницы будут вы сами выбираете. Кроме того там сам адрес в кеше делится на индекс, way, линию и смещение. Кроме того там есть идекс процесса (на случай переключения программного контекста в другой процесс).

Кроме того там есть область специальная для вашего кода (прямо в процессоре) можно привязать ее к конкретному прерыванию. То есть будет работать как очень быстрый триггер обработки аппаратного трехмерного массива.

Все в ваших руках.

А если вы сделаете троичную функцию вращения вектора, то сортировка каждого элемента в дереве будет вообще 2 такта занимать (а ведь есть еще и конвейер и другие ядра.

То есть 4-8 узлов дерева можно за 1 такт обработать легко...

35

Re: Программное обеспечение

Автор: *


на всякий случай скажу, что понятие "слои" вообще не имеет принципиального значения т.к. они (их количество и размеры) должны формироваться в процессе... на мой не просвещенный взгляд конечно... wink

У Глушкова из методов "подстройки" алгоритма - градиентный спуск и поиск в "овраге".
Можно представить, что вместе со всеми уровнями удалось бы построить "ландшафт экономики страны".

Уровни это метод сокрытия не нужных деталей. Каждый АСУ имел в своем составе директора и программиста - они принимали решения, какие данные вводить в компьютер + те которые требовало министерство. В министерстве крутился пакет статистических расчетов - показатели сравнивались с предыдущим годом + должен был быть запланированный рост показателей. Если его не было, министерство давало по шапке. Если на местах в областях пробовали подтасовать данные - то же по шапке областному руководству. На местах (в совхозах) могли быть приписки, но областное управление знало за счет информации добытой собственным осмотром и контролем (по мимо компьютера).

Поэтому вопроса об избавления от людей вообще не было ... Это же Социализм, человек всему голова - один из основных принципов.

В Киберсине там основные ресурсы находили в отдельных хозрасчетных проектах. Например: группа рабочих-наладчиков потратила свое время и из 2 старых сломанных станков сделала 1 дополнительный работающий и получило деньги на карман как за новый станок. А так бы в мусор были бы списаны 2 раза по пол-станка. То есть рост за счет "внутренних ресурсов".

Вообще технологии информационные подстраивали под достижения программистов:

Создание компилятора - пакетная обработка отдельных задач в НИИ.
Создание редактора текста - ввод информации о сотрудниках и ресурсах.
Создание редакторов символических мат. выражений - простые расчеты матриц.
Пакеты линейной алгебры - расчет линейный задач типа расхода материалов.
Пакеты для обыкновенных диф. уравнений - расчет задач прочности конструкций.
======================== Контроль - второй уровень ЭВМ.
Пакеты статистического анализа и графики - сбор и статистический анализ показателей производительности предприятия.
Расчет дисперсии - контроль по малому числу параметров (министерство контролирует области)
Предсказание изменения статистических данных при изменении 1 параметра - программы расчета режимов для Нефтегазовой отрасли. 2 параметра - расчет скорости бурения от износа долота и осевой нагрузке при бурении.
Обработка сетевых графиков - планирование энергетических сетей.
Геодезические и расчетные программы пластов - планирование угольных разрезов
Биения и другие расчеты для тепловозов и электровозов - создание быстрых поездов.

=========================== Военные - самый верхний уровень контроля промышленности.
Дискретизация аналогового сигнала осциллографа - создание самонаводящихся ракет.


Как видим нет предсказаний (только вероятностные корреляции и спектры). Нет попыток построения роботов или систем распознавания на основе биометрии.

Как говорят, есть правда, лож и статистика. Так вот ИИ это да же за гранью лжи статистики ..... видимо в 60-х годах ограничения статистических моделей поняли, и не стали развивать направление ИИ.

36

Re: Программное обеспечение

Автор: гость

Это не может быть ИИ в принципе, любая программа - просто манипуляция символами, она не содержит семантики, онтологии, в ней нет РАЗУМА и быть не может!

Но Вам не хватит духу написать многослойный персептрон на асемблере, думаю и этот код не Ваш, скопировали откудота или дезасемблировали сортировку на пайтоне, это Вам под силу думаю.

Предлагаю написать MLP на ASM  и сравнить по скорости с MLP from VGT, скорость MLP VGT является главной характеристикой, но ASM шустрее плюсов, а значит Вы можите написать быстрее MLP, но не можите, так как в сети наверно не валяется

Там ясно видно.

heap_sutras_real_2.o - это дисасемблер объектного файла моей программы на Си, которую я преписал с Паскаля. Программу на Паскале составил Илья Васильев, он же Арви зе Хэккер (AtH). Он же основатель первой в мире гражданской школы хакеров и автор Форта для калькулятора электроника.

это оптимальная по времени сортировка, которая не требует дополнителльного буффера. То есть ее можно сделать да же прямо на стеке.

В каком то смысле сортировка, это уже создание над структуры. Потому что после сортировке, отпадает необходимость перебора. Доступ к нужной части информации происходит за минимальное время.

Вот у нас есть на Форте шитый код. Просто набор адресов подпрограмм-операторов.

Если это форма записи физической или математической формулы. То подобная сортировка будет уже являтся преобразованием символьной формулы. Потому что мы сохраняем в шитом коде набор операций. А сами листья дерева у нас на стеке данных.

Если мы выделим произвольный узел и отсортируем относительно него, то получим уже решение именно для параметров этого узла.

Далее если взять подходящий метод для сходимости численно результата (например реализацию интервальных библиотек), то можно получить надежное численное решение.

Для вас все это будет выглядеть как магия - вы ткнули мышкой в то место большой формулы (или предмет на сцене, или радикал в 3D-4D биохимической молекулы), которое вам надо и получили не только большую формулу для зависимости от всего окружения, но и численную оценку....

Что вам еще надо? Анализ дисперсии в динамике? это возмоно, но займет больше машинного времени.

37

Re: Программное обеспечение

Автор: ignat99

Как видим нет предсказаний (только вероятностные корреляции и спектры). Нет попыток построения роботов или систем распознавания на основе биометрии.

Как говорят, есть правда, лож и статистика. Так вот ИИ это да же за гранью лжи статистики ..... видимо в 60-х годах ограничения статистических моделей поняли, и не стали развивать направление ИИ.

На мой взгляд Вы немного путаетесь в осуждениях smile  Дисперсия это классическая статистика, второй момент, "классичнее" её только матожидание, спектр тоже статистика, свертка в гармоническом пространстве, она как гистограмма распределений, только перемножаются на косинусы с разной частотой. Говорить что статистика = "лож", а дисперсия = "истинна", будет противоречиво.

И в предсказаниях собственно говоря нет никакой магии. Есть регулярности, есть модели их описывающие, соответственно есть экстраполяции, если модели годные то и экстраполяции будут иметь смысл. Машинное обучение это эвристическое расширение статистики на подавляющее большинство реальных задач где распределения какие угодно и всё нелинейное, рваное и с кастомными подводными камнями.

38

Re: Программное обеспечение

Автор: ignat99

Более того есть префиксы к командам, которые сами флаги выставляют, не надо даже операций сравнения.

В Швейцарском технологическом уже давно поняли - современные Операционные системы это пережиток. Все механизмы есть аппаратно в SoC. Можно писать в стиле микроконтроллера, на одних ситуациях (исключениях и прерываниях от переферии). Даже главного цикла не надо :-)

Посмотрите слайд 107. Четно написано ОС - не нужна для SoC.

http://oberoncore.ru/_media/library/fri … 0_2013.pdf

Не нужны программы и ОС. Только HDL редакторы и симуляторы логического уровня нужны с Си-подобным синтаксисом входным.

https://habrahabr.ru/post/318174/

39

Re: Программное обеспечение

Автор: *

На мой взгляд Вы немного путаетесь в осуждениях smile  Дисперсия это классическая статистика, второй момент, "классичнее" её только матожидание, спектр тоже статистика, свертка в гармоническом пространстве, она как гистограмма распределений, только перемножаются на косинусы с разной частотой. Говорить что статистика = "лож", а дисперсия = "истинна", будет противоречиво.

И в предсказаниях собственно говоря нет никакой магии. Есть регулярности, есть модели их описывающие, соответственно есть экстраполяции, если модели годные то и экстраполяции будут иметь смысл. Машинное обучение это эвристическое расширение статистики на подавляющее большинство реальных задач где распределения какие угодно и всё нелинейное, рваное и с кастомными подводными камнями.

Программу решение почти любого нелининейного уравнения сделать можно. А вот программу решения почти любого нелининейного уравнения за конечное время - нельзя.

Хотя обещают квантовые компьютеры. Но это будет очередной виток аналоговых компьютеров и натурного моделирования. Где в качестве рабочего тела будет поле фотонов.

Но тогда скептики будут говорить. Что лабораторные условия исключают трансцендентное вмешательство разума (медитирующего монаха, товарища Сталина, или эйнштейна с мыслимым экспериментом, или Козырева) в "поведение" фотона.

40

Re: Программное обеспечение

Автор: гость

Хакер пишет на паскале, это довольно странно, паскаль вроде как ученический язык, как пайтон, но в отличии от помледнего ещё и не популярный. Утверждение похоже как сказать что Шумахера видели катающимся на детском трехколеснике.

Не сходится...

Хакеры пишут на яве, плюсах и асемблере

Все сходится, он же для детей пример делал. Кроме того у вас устаревшие сведения. Хакеры с 2010 года и раньше давно уже на Верилог и VHDL и Систем СИ делают проекты (мы начали в 2005 и закончили в 2006 из за необходимости наличия своего завода по выпуску ПЛИС). Ссылки выше - как раз презентация из лаборатории Вирта (который и сделал Паскаль, Оберон, Актив-Оберон, Зенон - а потом всех его аспирантов перекупил Микрософт, чтоб они еще что нибудь непотребное не сделали - типа напишут что нибудь отличное от Виндоус-10 и Микрософт сразу потеряет все рынки).

41

Re: Программное обеспечение

Автор: *
В общем эти алгоритмы может и красивые, но совсем глупые.

Так кроме оптимизации палитры есть ещё и алгоритмы учёта возникаемых при перекодировке невязок. Для обработки картинок - тот же Флойд-Стейнберг (dithering), размазывающий возникающую текущую невязку по цветам смежных пикселов.
Но это уже совсем другая задача выходит, отличная от Вашей исходной.

42

Re: Программное обеспечение

Автор: гость  не будете столь добры обьяснить что такое есть "остаточные классы"?

- Наберите в Гугле и читайте взахлёб! smile Однако, имейте в виду следующее.
Недостатки системы остаточных классов:

  1.  Возможность представления только ограниченного количества чисел.
  2. Отсутствие эффективных алгоритмов для сравнения чисел, представленных в СОК. Сравнение обычно осуществляется через перевод аргументов из СОК в смешанную систему счисления по основаниям ( m 1 , m 1 ⋅ m 2 , … , m 1 ⋅ m 2 ⋅ ⋯ ⋅ m n − 1 ) {\displaystyle (m_{1},m_{1}\cdot m_{2},\dots ,m_{1}\cdot m_{2}\cdot \dots \cdot m_{n-1})} (m_{1},m_{1}\cdot m_{2},\dots ,m_{1}\cdot m_{2}\cdot \dots \cdot m_{n-1}).
  3.   Медленные и требующие работы с большими числами реализации алгоритмов перевода из позиционной системы счисления в СОК и обратно.
  4.  Сложные алгоритмы деления (особенно для случая, когда результат не является целым).
  5. Крайняя сложность выполнения логических операций.
  6. Трудность в обнаружении переполнения.
Поэтому СОК не выдержали конкуренции и остались красивой тупиковой веткой! smile

43

Re: Программное обеспечение

Да есть статьи по памяти на электретах. Все ссылки выложу. По жидким кристаллам есть книги на русском (Названия книг приведу и переводы). Российский майнфрейм в 2009 году как раз на задачу тонких пленок из жидких кристаллов планировался. По третьему пункту, не думаю что народ будет ломится все выклаыдывать.

44

Re: Программное обеспечение

На диодах Шотки (FAST (Fairchild Advanced Schottky TTL) ).

Диод_Шоттки

В Зеленограде была Арсенид-Галивая линейка станков. Делали оборудование для РЛС станций. Но их специально 4! раза переезжали. А один переезд равен 3 пожарам. А в случае микроэлектроники 10 пожарам.

45

Re: Программное обеспечение

Ссылка по  1 пункту - электреты:

http://www.nature.com/news/magnetic-log … ps-1.12321

По 2 пункту книги по жидким кристаллам:

./P_Physics/PC_Classical physics/PCfm_Fluid mechanics/Belyaev V.V. Vyazkost' nematicheskix zhidkix kristallov (FML, 2002)(ru)(K)(600dpi)(T)(223s)_PCfm_.djvu
./P_Physics/PS_Solid state/PSa_Applications/De Zhen P. (_De Gennes_) Fizika zhidkih kristallov (Mir, 1977)(ru)(T)(400s)_PSa_.djvu
./P_Physics/PS_Solid state/PSa_Applications/Chandrasekar S. Zhidkie kristally (Mir, 1980)(ru)(T)(343s).djvu
./P_Physics/PS_Solid state/PSa_Applications/Turov E.A. Fizicheskie svojstva magnitouporyadochennyh kristallov (AN SSSR, 1963)(ru)(K)(T)(223s)(300dpi).djvu
./P_Physics/PS_Solid state/PSa_Applications/Odijk T. Theory of lyotropic polymer liquid crystals (Macromolecules review, 1986)(T)(17s).djvu
./P_Physics/PS_Solid state/PSa_Applications/Semenov A.N., Kokhlov A.R. Statistical physics of liquid-crystalline polymers (Sov.Phys.Usp.31, 1988)(T)(27s).djvu
./P_Physics/PS_Solid state/PSa_Applications/Stephen, Straley. Physics of liquid crystals (RMP 46, 1974)(T)(88s)_PSa_.djvu

46

Re: Программное обеспечение

Автор: гость



Насколько плотна возможная упаковка магнитоэлементов. Судя по всему намного порядков ниже полупроводников? Тогда её применение только в радиационностойких изделиях.

Теоретический предел 8-10 Ангстрем на ячейку. Реально достигнутый, думаю, в 100 раз менее плотный (говорю на угад, данных нет у меня).

47

Re: Программное обеспечение

Автор: *


Я специалист по магнетизму, магнитным материалам и магнитооптике. Говорю: У магнитных диполей плотность упаковки и энергетика всегда будет хуже электрических и молекулярных за счёт эффекта "саморазмагничивания". Какой минимальный диаметр острия иглы для записи можно сделать? Большая коэрцитивная сила, нужная для высокой плотности, требует больших полей  и токов для их создания. И потом они не активные, без усиления  и только для памяти. Электрический заряд можно свести в пределе к одному электрону. Ну, к нескольким для превышения над шумами. Сейчас IBM элементы на фазовых переходах изобрели. Это уже ближе к молекулярным.

По жидким кристаллам вы то же специалист?

Или вы путаете твердое состояние вещества (как в сердечниках) и фактически упорядоченные молекулы или частично упорядоченные в соответствии с фазой перехода в плавающем состоянии?

48

Re: Программное обеспечение

Автор: *


ТОЖЕ. И не путаю. Читайте новости от IBM. Я с ними работал, когда голографией занимался. Они все основаны на вращении плоскости поляризации, но достаточно инерционные при перестройке структуры при записи.
Жидкие - оно понятно, а вот почему кристаллы, знаете?
А вот сколько времени занимает перемагничивание магниного домена и сколько времени изменение электрического заряда? В пределе! Знаете?

Лабораторые по Квантовой физике в которых мы перемагничивали магнитные домены на кафедре квантово-оптических приборов на 1! курсе в 1990 году! в МИэТ и потом разглядывали домены в Микроскоп и проверяли теоретические и практические результаты, которые были в рамках погрешности (мы это то же вычисляли). То есть это было 26 лет! назад.

Сейчас эта тема, поднятая вами, для меня не актуальна. И вы перевели разговор с характерых размеров ориентированных частей полимерных молекул жидких кристаллов совсем в другую область.

То есть ваш ответ, я воспринимаю так, да же в старую книгу по жидким кристаллам вы не удосужились заглянуть. Например Чандасикар и более ранний автор из Франции (кажется) повторяют друг друга практически дословно.

49

Re: Программное обеспечение

Автор: *


Интересно, расщепить счетчик инструкций и выполнять частичные переходы. Наверно разработчики процессоров знают много таких фокусов.

это только самая макушка айсберга. А под водой - систолические системы с ярко выраженным параллелизмом типа клеточных автоматов. Они же вычислительные Гипперкубы. Там есть интересные алгоритмы. А проектировщики железа, просто подстараивают новые микропроцессоры под старые параллельные алгоритмы.

50

Re: Программное обеспечение

Автор: ignat99
это только самая макушка айсберга. А под водой - систолические системы с ярко выраженным параллелизмом типа клеточных автоматов. Они же вычислительные Гипперкубы. Там есть интересные алгоритмы. А проектировщики железа, просто подстараивают новые микропроцессоры под старые параллельные алгоритмы.

Да, это очень интересно.
Если на сумматор нужно 100 транзисторов, а в процессоре миллиард, но полезного он в какой-то момент тоже делает только сложение, то его КПД 0,0000001% Вот так и получаются нейросети во флешке, которые расходуя милливатты обгоняют пентиумы.