Ir ao conteúdo
  • Cadastre-se

Folding@Home - Brincando de Kernel linux - Distro: Arch Linux.


ilkyest

Posts recomendados

  • Membro VIP

Após dias de luta, dias de glória... voltamos aos testes. Fonte nova, watercooler novo, trolões prontos pro abate

 

Tudo ok...e  quem quiser conferir os detalhes, sintam-se a vontade.

 

 

Como faremos os testes, agora... com tudo ok?

 

 

 

Aplicativo Systester:

 

Ele faz testes com dígitos de PI, e vai servir para um peso lógico no sistema.

 

systester_2.png    Aqui temos a tela de início, ou splash

 

 

E aqui a parte das configs

 

systester_3.png

 

Para os testes, usarei

  • Pi Digits - 64M
  • 2 ou 4 Turn *
  • 1 Thread
  • Alghorithm - Borwein

 

Explicando porque.

 

Mostraremos, oportunamente, que no meu caso, a GPU usa um núcleo do processador. Logo abaixo veremos o teste arquivo... que pesará o sistema num, "overall"... então não tem sentido, se a GPU usará um núcleo, e o systester outro, teremos 50% da força de processamento.. mais threads vai tornar irritante o processo

e torna... agora percebi...

 

Para ter-se ideia, com o cliente beta rodando... 64M dígitos de pi, levou, em 1 thread, 1 turno, 12minutos. Com GPU isso com certeza irá subir. Então, julgo eu que não precisamos mais threads do processador

 

* O tempo mais demorado é da GPU, se for core 17. Inicio em 2 turnos.. se for possível terminar 3 frames, ou 3% da WU... será usado 2 turnos.. se não.. 4 turnos

 

Somente serão analisadas na GPU WU core 17, ou core18, pois são demoradas, e facilitam o teste a longo prazo

 

Método arquivo.....

Será que duas pastas de 10Gb, 3 arquivos, totalizando 20 Gb copiando, entre uma unidade USB (espetada num dockstation como este, de 750Gb) e o /home vai interferir em algo?

 

 

 

Os componentes do nossos testes

 

Folding browser

Folding V7

 

Configurações para o browser

Folding_home_Chrome_Client_Google_Chrome

 

 

agora no V7

FAHControl_Folding_home_Client_Advanced_

 

Configure.jpg

 

 

 

Detalhes sobre o cliente beta, browser

  • Independente se, 2982, ou 2981, considerarei como uma WU só.. uma diferença, no meu pc, de 1 minuto, não avolupta tanto o resultado.

 

 

Metodologia

 

Os testes serão feitos em:

  • Browser beta - idle
  • Browser beta - systester
  • Browser beta - arquivo
  • GPU - idle
  • GPU - systester
  • GPU - Arquivo
  • Ambos, idle
  • Ambos - systester
  • Ambos - arquivo
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Jeitão arch (e porque sou apaixonado por ele) de compilar kernel.

 

Quem compila kernel em ubuntu, fedora, verá que, pelo menos eu acho, no arch é mais fácil compilar kernel.

 

Nas demais distros, baixa-se os compiladores e bibliotecas, e depois entra "puramente" no xconfig, ou menuconfig, ou ainda nanoconfig e faz o que tem de fazer

 

os patches são aplicados manualmente, com comandos como:

 

patch -NP1 < patch.patch

 

No arch, pelo menos nos kerneis objetos de teste, existe um arquivo chamado pkgbuild, editável, que "faz esse processo".

 

Ele irá indicar quais são as bibliotecas faltantes (se for o caso) e fará o processo todo, ou... no nosso caso, até onde queremos.

 

 

O pkgbuild é executado como usuário padrão nunca como root via comando makepkg

 

 

makepkg

 

Compilando "por dentro"

 

Alguns dos nossos kerneis, além de pré-preparar ele via pkbuild, vamos compilar ele internamente, por assim dizer, após o pkgbuild. Tem tres formas de compilar-se um kernel, dentre outras, que não o nanoconfig (nconfig) o xconfig e o menuconfig.

 

linux-nconfig_1.pngnconfig, ou nanoconfig

 

menuconfig.gifmenuconfig

 

fig-1-xconfig.png

xconfig

 

 

salvo o xconfig, os outros dois são do estilo "uma janela leva a outra". Como eu quero alterar, oportunamente, coisas via "CTRL+F" que é o "find" eu vou usar o Xconfig, até para ficar mais fácil de ver "lado ao lado" o que é stock no kernel, e o que vamos alterar

 

Kernel Vanilla

 

Fonte: Wikipedia

http://pt.wikipedia.org/wiki/Linux_%28n%C3%BAcleo%29

 

O modelo de desenvolvimento atual do Linux é feito para permitir que Linus Torvalds realize o lançamento de novas versões constantemente. Estas versões são chamadas de núcleos "baunilha" (em inglês: vanilla) ou "principais" (em inglês: mainline), que significa que estes núcleos são derivados (branch) do código de desenvolvimento principal do núcleo Linux. Uma nova versão do núcleo Linux só é lançada depois de passar por grandes mudanças, por exemplo, primeiro Linus Torvalds recebe e incorpora dos programadores as mudanças no código do núcleo Linux, a partir dai são feitos pré-lançamentos do núcleo e destes são realizadas as correções de possíveis defeitos encontrados, só então é lançada a nova versão do núcleo do sistema operacional Linux. O lançamento de um novo núcleo é feito em média a cada três meses.

 

No esquema de desenvolvimento atual, a derivação (branch) principal não é a versão "estável" tradicional, pois é ela que incorpora todos os tipos de alterações, tal como últimos recursos, correções de segurança e defeitos. Para usuários que não querem arriscar atualizando para novas versões, contendo código que pode não ter sido testado o bastante, existem um conjunto separado de derivações "estáveis" (uma para cada versão lançada), que são criadas para usuários que querem apenas as correções de segurança e defeitos, mas não uma versão totalmente nova. Estas derivações são mantidas pelo time estável (em inglês: stable team) (Greg Kroah-Hartman, Chris Wright, talvez outros).

 

A maioria dos usuários Linux utilizam a versão fornecida pelas suas distribuições. Algumas distribuições fornecem os núcleos "baunilha" e/ou "estável". No entanto, muitos distribuidores Linux, como a Red Hat e o Debian, mantém outro conjunto de derivações do Linux que são integradas aos seus produtos. Estes são em geral atualizados em um ritmo mais lento em comparação com a derivação "baunilha" e normalmente incluem todas correções da derivação "estável" correspondente, mas ao mesmo tempo podem adicionar suporte a controladores ou recursos que não foram lançados na versão "baunilha" em que o distribuidor se baseou originalmente.

 

Como compilar o kernel

 

Como foi dito anteriormente, os kerneis a compilar, em arch linux, são executados pelo pkgbuild. Após baixar o "tarball" do site do AUR, e alterar as partes pertinentes no pkgbuild, basta dar, como usuário comum

 

makepkg

e o pacote começará o processo de baixa dos "sources" e a compilação. Se você selecionou executar o x/n/menuconfig ele, o pkgbuild, te aguardará até salvar tudo, e prosseguira com os passos restantes.

 

Exemplo de um pkgbuild rodando, no anexo:

DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICAPor mais feio que seja, não use espaços no diretório, ao compilar o kernel. USE HIFENS, NÚMEROS, QUALQUER COISA, MENOS ESPAÇOS entre os caracteres. Já obtive muitos erros usando espaço...O linux considerará, em alguns casos:Kernel\ CK\ e não "kernel ck"se usar hifen, o linux lerá"kernel-ck\"DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA DICA

Exemplo disso

ls: não é possível acessar /home/ilkyest/Kerneis: Arquivo ou diretório não encontradols: não é possível acessar a: Arquivo ou diretório não encontradols: não é possível acessar 300hz/linux-ck/src/0001-block*.patch: Arquivo ou diretório não encontradols: não é possível acessar /home/ilkyest/Kerneis: Arquivo ou diretório não encontradols: não é possível acessar a: Arquivo ou diretório não encontradols: não é possível acessar 300hz/linux-ck/src/0002-block*.patch: Arquivo ou diretório não encontradols: não é possível acessar /home/ilkyest/Kerneis: Arquivo ou diretório não encontradols: não é possível acessar a: Arquivo ou diretório não encontradols: não é possível acessar 300hz/linux-ck/src/0003-block*.patch: Arquivo ou diretório não encontrado

Habilitando o kernel para executar

 

Pessoal, eu uso o grub2 no arch linux.

 

Para atualizar os kerneis no grub2, em arch linux, eu uso o comando

grub-mkconfig -o /boot/grub/grub.cfg

 

Em algumas outras distros, basta um "update-grub" que faz a mesma coisa.

 

Lembrando que, como tenho dualboot com o windows 7, eu tenho o "os-prober" instalado para adicionar automaticamente a entrada do windows ao grub, ao atualizar o grub

 

para instalar em arch linux

 

pacman -S os-prober

post-391122-0-49289200-1420599745_thumb.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • Membro VIP

A máquina de combate:

 

Placa mãe ASUS M4A88TD-V EVO/USB3

MEMÓRIAS: kingston KVR1333D3N9 - 4Gb

HD: 6HDs, sistema RAID5, para root 3 hds (2 de dados e um de bit de paridade) de 36,7Gb, SCSI @ 10k RPM,

                                           para /home 3HDs também 2 de dados e um de bit de paridade, de 72,4Gb. Marca IBM os de 72Gb, e
                                           marca Maxtor/compaq os de 36Gb.

 

Placa de video: Zogis brand, Nvidia Geforce 650Ti, @1gb

Sistema: Arch linux, 64bits, kernel stock

Fonte: Corsair TX750, chamada de "polvo" pelos colegas que usaram ela, @ApoloBrz, @dawson600

 

 

 

Demais componentes:

  • Trolões

http://forum.clubedohardware.com.br/forums/topic/1084547-alterando-os-fans-usando-uns-mais-parrudos/

 

  • Novo aquário

http://www.hardware.com.br/comunidade/watercooler-altro/1356520/

 

  • E o casemod para as baias RAID SCSI... cuidado, é muito feio

http://www.hardware.com.br/comunidade/feio-casemod/1361298/

 

 

Quem estiver pronto... que pisque duas vezes, pelo menos, as luzes!!!!!

https://www.facebook.com/video.php?v=830165913706639&l=8271254436349454931

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • Membro VIP

Driver de vídeo

 

Boa parte dos kerneis trazem driver de vídeo, proprio, para compilação. Alguns, porém, não.

 

Um bom jeito de fazer "o negócio" é instalar via aur o nvidia/hook e o nvidia/dkms

 

Não vou adentrar "porque via aur".. apenas cito que, ao baixar um pacote e usar o pkgbuild/makepkg você provavelmente usou o AUR

 

O drama é que a dupla hook/dkms não funciona com o kernel stock. Assim sendo, os testes serão inciados com os kerneis que tem driveres para si, e depois, para aqueles que devem usar "a dupla".

 

Melhor sacrificar um kernel, que quase todos, em vista de não iniciar o driver de vídeo.

 

 

 

 

Driver de vídeo stock

neste momento, o driver é o 343.36

 

 

Para os trabalhos, foi dado um "pacman -Syy" para forçar a atualização de todos os repositórios do pacman,  e um "pacman -Su" para atualizar o sistema.

 

Chega de

[849.jpg

 

e vamos começar os festejos

 

 

Em tempo:

@Marcos FRM esqueci de algo aqui? alguma coisa que gostarias de citar quanto ao kernel stock?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

KERNEL CK

21060.jpg?m=1388156056 MANTENEDOR... O CARA DO CK - Guarde esse avatar jovem: Graysky

 

É um dos poucos kerneis, se não talvez, o único, que tem página na wiki do arch

https://wiki.archlinux.org/index.php/Linux-ck

 

e claro, página no AUR, para quem, como eu, compila de peito aberto

https://aur.archlinux.org/packages/Linux-ck/

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Linux - LQX

 

Apresentação:

A desktop oriented kernel and modules with Liquorix patches

 

Mais detalhes sobre o "liquorix"

 

Liquorix is a distro kernel replacement built using the best configuration and kernel sources for desktop, multimedia, and gaming workloads.

Fonte:

http://liquorix.net/

 

Disponível via AUR

https://aur.archlinux.org/packages/linux-lqx/

 

Este kernel tem driver de vídeo próprio

https://aur.archlinux.org/packages/nvidia-lqx/

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Pô, que saga. A compressão da imagem do kernel (GZIP, XZ, LZ4, etc) não faz diferença na execução. É uma medida apenas para economizar espaço no arquivo mesmo.

HZ_1000 é usado no kernel -desktop do openSUSE e no Fedora. Já o kernel -default do openSUSE usa HZ_250.

Teste os parâmetros que configuram o comportamento tickless do kernel (CONFIG_NO_HZ_IDLE <-> CONFIG_NO_HZ_FULL) -- ver este documento.

E compilar para a família do seu processador. Essa otimização não traz ganho significativo, mas qualquer porcento já está valendo. ;)

Seria interessamente é testar diferentes versões do GCC. Porém daí sua matriz de teste aumentaria demais.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Marcos FRM mas olha so quem eu encontro....kkkk

 

com o tickless eu cheguei a ganhos de 1 a 1,5 minutos meu caro, mas a ideia inicial é preservar o que tem de bom o kernel. quanto ao 1khz ou 300hz, te digo, tem alteracao sim... um minuto até... mas é na carga que vale a pena

 

infelizmente tive de comecar tudo do zero, por conta do windows... mas os testes recomecam

 

@Marcos FRM muito obrigado pela contribuicao meu caro... e seja bem vindo ao folding.... tuas dicas ~lá~ sempre foram boas....

 

and that the carnage re-begins

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...
  • Membro VIP

Em tempo:

@Marcos FRM esqueci de algo aqui? alguma coisa que gostarias de citar quanto ao kernel stock?

Acho que não. Se descobrir algo mais volto para incomodar. :)

Numa instalação mínima do F21 (kernel padrão 3.17.7-300.fc21.x86_64):

 

  PID  PPID   SID COMMAND    1     0     1 systemd  230     1   230   systemd-journal  255     1   255   systemd-udevd  293     1   293   auditd  304     1   304   firewalld  306     1   306   systemd-logind  308     1   307   chronyd  310     1   310   dbus-daemon  319     1   319   crond  325     1   325   agetty  375     1   375   NetworkManager  411     1   411   polkitd  431     1   431   sshd 7403   431  7403     sshd 7411  7403  7411       bash 7445  7411  7411         ps  471     1   471   FAHClient  768   471   471     FAHCoreWrapper  815   768   471       FahCore_a4 7407     1  7407   systemd 7409  7407  7407     (sd-pam)
Ao usar o CFS, duas opções a serem testadas na execução (via sysctl):

kernel.sched_migration_cost

Com muitos núcleos provavelmente aumentando esse tempo ajude evitando trocas de contexto desnecessárias. Para cargas com várias máquinas virtuais, o RHEL aumenta para 5000000 ns (https://bugzilla.redhat.com/show_bug.cgi?id=969491).

kernel.sched_autogroup_enabled

É o famoso patch lá de 2010 que coloca os processos de cada SID num cgroup diferente. Para liberar o máximo de recursos para o F @ H, desative-o. A responsividade em outras tarefas pode piorar, contudo. Reverta se necessário.

Referência: http://www.postgresql.org/message-id/[email protected]

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • 2 semanas depois...
  • Gabriel Torres alterou o título para Folding@Home - Brincando de Kernel linux - Distro: Arch Linux.
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...