Skip to content
This repository has been archived by the owner on Jul 8, 2022. It is now read-only.

Pipelined livre #188

Closed
wants to merge 9 commits into from
Closed

Pipelined livre #188

wants to merge 9 commits into from

Conversation

bilgili
Copy link
Contributor

@bilgili bilgili commented Nov 14, 2015

So, my pipelines are here:

Why did I do this ?

  1. Dash is a nice library but control over it is a bit difficult and I had to rearchitecture Livre a lot ( maybe dash as well ). Understanding it takes a bit time until people gets used to it. I wanted to simplify this. It may not be simpler, you are going to tell me :)
  2. Rearchitecture was needed to fix issues like: multiple windows under a node, cache overcommiting, etc.
  3. I wanted a way of running some parts of the codes asynchronously under some control. Like the visible tree generation per root octree node etc, but using my previous algorithms.
  4. I wanted to add easy ways of processing of data blocks ( filtering + adding information ) etc, and of course in paralellel.
  5. Graphs are easier to grasp for people and with the pipeline you can create this graphs easily. There is type control over the connections in runtime so you cant go wrong. The type checking is based on c++11 typeindex and this can be discussed.
  6. I want to gather different kinds of renderings together with Livre and the addition of those things into the code will be a bit more easier.
  7. The connection mechanism is currently based on futures and it is a synchronization object based on two pieces. promise + future and futures here provides means to query, set and retrieve data. These copules are similar to publisher + subscriber, hpx futures so in the future it may be possible to extend using remote functions.

I am creating this pull req in order to discuss / change or even completely delete ( I am fine with it). I think at the end I really had a nice idea of using graph based algorithms and if we dont use it, I will make a library called "TaskTube" :) for my own things.

Do jump in if you want but I would like to go with a couple of people different regions of the code.

Known issue: On exit I am getting
21218.Main ../Collage/co/localNode.cpp:387 8284 0 connections open after close
21218.Main ../apps/livre/livre.cpp:90 8284 Assert: client->getRefCount() == 1 [Client still referenced by 7] in:
but I will have a look at it.

@bilgili bilgili force-pushed the pipelined_livre branch 4 times, most recently from b27ec06 to 1c7411c Compare November 14, 2015 15:40
{
LBASSERT( cacheObjectID != INVALID_CACHE_ID );
ReadLock readLock( mutex_ );
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ScopedMutex semantics and scoped code, please.

Pipeline* pipeline = dynamic_cast<Pipeline*>( executable.get( ));
if( pipeline )
{
int zzzz;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

zzzz??? :-)

@rdumusc
Copy link

rdumusc commented Nov 25, 2015

+1 for my part, someone else can give the +2. It is a large change - try to merge after careful testing and bug fixing :-)


namespace livre
{

Processor::Processor()
/**
* The Executable class is the base clas for objects that can be executed by workers.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo clas

Style: In doxygen I already see that this is the Executable class. I prefer:

'Base class for objects that can be executed by workers' , i.e., DRY.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is what I call a filter in the ISC document?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think so. It is independent from where it is being executed.

@eile
Copy link
Contributor

eile commented Nov 26, 2015

Is there an overview on all the pipeline classes? Either some doxygen or UML diagram? I got lost in all the input/output filter/executor/port permutations.

@bilgili
Copy link
Contributor Author

bilgili commented Nov 29, 2015

I am thinking about a presentation for it. I did not have time :)

bilgili pushed a commit that referenced this pull request Feb 17, 2016
Cleanups & Refactorings before the Pipeline merge #188
@bilgili bilgili closed this May 25, 2016
@bilgili
Copy link
Contributor Author

bilgili commented May 25, 2016

#188 implemented all functionality of this commit

@bilgili bilgili deleted the pipelined_livre branch October 4, 2016 20:39
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants