Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • C CPSIM
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3
    • Issues 3
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • CosmicPampa
  • CPSIM
  • Issues
  • #2

Closed
Open
Created Dec 12, 2021 by Bruno Thomazi Zanette@BrunoZ31🎱Owner

Escolha de modulo para Multiprocessing em python

MUltiprocessing: É possível, e deveria funcionar no blender, como diz na documentação:

Python threads only allow concurrency and won’t speed up your scripts on multiprocessor systems, the subprocess and multiprocess modules can be used with Blender to make use of multiple CPUs too.

Exemplo em código simples do uso de todos os processadores image

Process

Utilizando o módulo Process com base no artigo using multiprocessing to make python code faster, implementado como visto a baixa

#!/usr/bin/env python3
processes = []
for ligne in tabraw:
    p = multiprocessing.Process(target=multiprocessing_func,args=(ligne,))   
    processes.append(p)
    p.start()
    
for process in processes:
    process.join()

recebe-se o erro, por excesso de arquivos abertos:

OSError: [Errno 24] Too many open files
Error: Python script failed, check the message in the system console

Pool

implementado como:

pool= multiprocessing.Pool()
pool.map(multiprocessing_func,tabraw)
pool.close()

executa em 1 segundo para 289 linhas, porém não aparecem os objetos no blender.

Conclusão

O que impede o multiprocessing é o fato de só poder selecionar um objeto de cada vez, portanto quando está transformando as linhas em cilindros

Edited Dec 27, 2021 by Bruno Thomazi Zanette
Assignee
Assign to
Time tracking

Os conteúdos dos repositórios estão sob licenças livres e são responsabilidade dos próprios autores, não representando as opiniões e posicionamento da UFRGS ou do CTA.