Jump to content
scorch

Opiniões: Computação Distribuída

Recommended Posts

scorch

Bem, tive cá uma ideia que acho que seria interessante de ir pondo em prática nos meus tempos livres. A ideia passa pela criação de uma plataforma que permita a prática de computação distribuída. Basicamente o projecto teria estas funcionalidades:

Seria necessário o utilizador registar-se. Qualquer utilizador poderia criar projectos. Esses projectos são constituídos por training sets, ou seja, pedaços de código separados que no fim iriam originar o output final. Cada training set terá um input e um output, e poderá haver training sets que seriam dependentes da conclusão de outro(s). Devido à possibilidade de os resultados serem falsificados, cada training set teria a possibilidade de ser definido como Potencialmente Vulnerável, o que significa que seriam necessários x número de utilizadores diferentes obterem o mesmo resultado para este ser validado. Se houvessem dois resultados validados para o mesmo training set, seriam executadas duas ramificações até ao final do projecto. No fim de determinados training sets ou mesmo no fim do projecto seria possível adicionar um código simples de validação para verificar qual dos resultados seria o válido, ou mesmo se algum seria válido, isto caso o autor do projecto queira. Estas validações seriam executadas no servidor.

Quando um utilizador executa um training set e este é marcado como tendo um output válido, este utilizador ganhará pontos. Assim, ele poderá atribuir alguns dos seus pontos a um projecto seu ou de outra pessoa de modo a este projecto ficar mais visível e aparecer primeiro nos resultados e nas listagens. Isto baseia-se no facto de quem ajuda mais deverá ser mais ajudado.

Também seria possível marcar projectos como patrocinados, ou seja, apenas o staff os poderia marcar e apareceriam em primeiro em qualquer listagem.

Os projectos poderão ser privados, com inscrição necessária ou públicos. Caso tenham inscrição necessária, esta pode ser por auto-aprovação, por aprovação dos autores do projecto ou por convite apenas.

Este projecto é útil, na minha opinião, devido a muitos programadores e não só, necessitarem muitas vezes de poder de processamento e não o terem devido a falta de meios financeiros.

Opiniões? :)


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
JD557

O projecto é interessante, mas não sei até que ponto seria eficiente, visto que cada utilizador teria de fazer download de um training set, perdendo tempo.

Só deveria compensar em casos bastante complexos e que o tempo de download de cada training set e envio de resultados compensasse o tempo de processamento.

Outro problema que vejo é: como evitar que training sets contenham código malicioso? Tendo em conta que a plataforma é aberta para todos, era bom haver algo que protegesse minimamente o utilizador. (Correr os trainig sets numa sandbox parece-me uma boa ideia, mas pode comprometer a performance)


MIEIC @ FEUP

http://project557.blogspot.com/ --- Development Blog

Proteja a sua pen: http://lastknight.pt.vu

Share this post


Link to post
Share on other sites
scorch

Numa fase inicial estava a pensar correr os training sets através de uma linguagem de scripting, pelo que o download dos mesmos seria apenas texto e assim demoraria no máximo alguns segundos. Isto dava também segurança total aos utilizadores, pois o código correria automaticamente em sandbox. Em principio estou a pensar usar JavaScript, talvez implementar o V8 Engine, visto que é o mais rápido.

Posteriormente talvez passasse para C, se conseguisse criar uma sandbox.

O objectivo principal da plataforma, ou talvez aquilo para que seria mais usada não seria a construção de algoritmos de raiz, mas talvez implementar "exporters" dentro de certos programas, tipo renderizadores de imagem, etc... :)


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
apocsantos

    Boa noite

    Parece-me um projecto interessante, pena ser "limitado a java". Seria interessante teres suporte para C / C++.

    A questão da segurança parece-me pertinente, uma vez que mesmo sendo executados em sandbox, um tipo mal intencionado e com tempo disponível em "excesso", arranjaria alguma artimanha de contornar a sandbox, e correr código malicioso, por exemplo um Worm. A parte da segurança teria de ser muito bem pensada.

    De um modo geral gostei da ideia :)

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites
scorch

Sim, concordo com a parte da segurança. É óbvio que mal fosse detectado qualquer código malicioso, o user seria banido e o código retirado.


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
apocsantos

    Boa noite,

    Com um bom sistema de anti-virus / análise de código, consegues "reduzir as possibilidades" mas não "conter a totalidade". Gosto da ideia, em termos gerais, mas a questão do perigo de código malicioso, parece-me "pertinente" uma vez que o "poder de processamento" obtido pela computação distribuída tornaria o projecto um "alvo interessante" para potenciais pessoas mal intencionadas.

    Esbocei na caixa da pizza alguns apontamentos, sobre o assunto, nada de "serio" apenas um draft numa caixa de pizza, e conclui que se fosse seguro seria super interessante para compilação de algoritmos complexos, que requeiram muito tempo / poder de processamento.

    Pensa na questão da segurança "outside the box". :) e força continua passa da ideia ao código :) Gostei imenso da ideia!


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites
scorch

É isso que vou fazer, se calhar. Mas vai ser um projecto demorado, pois tenho pouco tempo e tenho de acabar outras coisas primeiro. :)

Mais opiniões são sempre bem vindas. :)


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
scorch

Será mais a plataforma para sustentar projectos como o SETI. :)


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
scorch

Sim, pelo que vi, é um objectivo semelhante. Embora o objectivo principal da minha aplicação seja mais as aplicações independentes e não os "grandes projectos científicos". Não sei se o BOINC é isto ou não, mas foi o que me pareceu. :)


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
Tharis

scorch, o BOINC serve para qualquer projecto que queiras. Toda a gente pode criar um projecto. Duvido é que projectos com pouca visibilidade e/ou objectivos gerais (o que quero dizer com isto é que o resultado é benéfico, mais ou menos, para toda a gente) venham a ter voluntários. :)

Share this post


Link to post
Share on other sites
scorch

Eu pretendo implementar um sistema que se baseará no facto de quem mais ajuda, mais ajuda terá. Ou seja, se uma pessoa ajudar em quatro ou cinco projectos, depois quando criar um poderá dar-lhe mais visibilidade entre outras coisas, de forma a que ele tenha mais probabilidades de ser ajudado. :)

Depois, numa fase mais avançada do projecto gostava de estabelecer contacto com equipas de desenvolvimento de certos programas (gratuitos de preferência, mas esse é ainda um critério a ser pensado) que exijam poder de processamento (por exemplo, renderizadores 3D) para ver se eles têm interesse em integrar o projecto com o meu.

O objectivo é pensar num plano que agrade aos utilizadores (que ajuda), mas que também desenvolvem (e pedem ajuda) e às equipas de desenvolvimento de certos programas (que ficarão com o nome no site e poderão vir também a ganhar utilizadores). :)


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.