Я могу воспроизвести это с помощью GCC 4.8.2-19ubuntu1 без оптимизации:
$ ./a.out
4.780179
3.762356
Вот пустой цикл:
0x00000000004005af <+50>: addq $0x1,-0x20(%rbp)
0x00000000004005b4 <+55>: cmpq $0x7fffffff,-0x20(%rbp)
0x00000000004005bc <+63>: jb 0x4005af <main+50>
И вот не- -пустой:
0x000000000040061a <+157>: mov -0x24(%rbp),%eax
0x000000000040061d <+160>: cltd
0x000000000040061e <+161>: shr $0x1f,%edx
0x0000000000400621 <+164>: add %edx,%eax
0x0000000000400623 <+166>: and $0x1,%eax
0x0000000000400626 <+169>: sub %edx,%eax
0x0000000000400628 <+171>: add %eax,-0x28(%rbp)
0x000000000040062b <+174>: addq $0x1,-0x20(%rbp)
0x0000000000400630 <+179>: cmpq $0x7fffffff,-0x20(%rbp)
0x0000000000400638 <+187>: jb 0x40061a <main+157>
Вставим в пустую петлю nop
:
0x00000000004005af <+50>: nop
0x00000000004005b0 <+51>: addq $0x1,-0x20(%rbp)
0x00000000004005b5 <+56>: cmpq $0x7fffffff,-0x20(%rbp)
0x00000000004005bd <+64>: jb 0x4005af <main+50>
Теперь они работают одинаково быстро:
$ ./a.out
3.846031
3.705035
Я предполагаю, что это показывает важность выравнивания, но я боюсь, что не могу конкретно сказать, как: |
В EMR livy-conf
- это классификация свойств для файла livy.conf
Ливия, поэтому при создании кластера EMR выберите advanced options
с Livy в качестве приложения, выбранного для установки, передайте эту конфигурацию EMR в [ 114] поле.
[{'classification': 'livy-conf','Properties': {'livy.server.session.timeout':'5h'}}]
/etc/livy/
, поэтому файл конфигурации находится в /etc/livy/conf/livy.conf
Чтобы проверить это,
ec2 key-pair
, Livy и выше key-pair
, войдите в главный узел EC2, связанный с кластером ssh -i some-ec2-key-pair.pem hadoop@ec2-00-00-00-0.ca-region-n.compute.amazonaws.com
/etc/livy/conf
, vim livy.conf
& amp; см. обновленное значение livy.server.session.timeout