[Insight-users] Application Checkpointing in ITK

Christopher Wyatt clwyatt at vt.edu
Tue Sep 5 10:25:16 EDT 2006


On Sep 5, 2006, at 4:29 AM, Gaetan Lehmann wrote:

> On Mon, 04 Sep 2006 22:55:51 +0200, Christopher Wyatt  
> <clwyatt at vt.edu> wrote:
>
>>
>> I am interested in implementing checkpointing in a long ITK  
>> pipeline, so that portions of the
>> pipeline output can be made persistent and loaded rather than  
>> recomputed. While this is trivial
>> to do in a given application, it seems that this functionality  
>> should not be too hard to add to ITK
>> at the library level.
>>
>> Before beginning this endeavor, I wanted to see if anyone else was  
>> working on this
>> or would have an interest in using such functionality (nothing  
>> showed up in the itk-users archive
>> or the developer archive, although the latter is hard to search).
>
> Hi,
>
> I would be interested in using that, but I can't see how you want  
> to implement that.
> Can you give a little more details about what you think to do ?
>
> Thanks,
>
> Gaetan

My first thought would be to reuse the logic for updating filters if  
the inputs change. The checkpointing
would work similar to the following.

someFilterPointer->SetInput( previousFilter->GetOutput() );
someFilterPointer->SetParameter( 24 );
someFilterPointer->AddCheckpointFile( "SomeFilterPersistentFile" );

anotherFilterPointer->SetInput( someFilterPointer->GetOutput() );
anotherFilter->Update();

When the update on anotherFilter is called, the pipeline checks each  
previous
filter to see if it need to be recomputed. In the case of someFilter,  
on the first or later calls,
it can load the data from "SomeFilterPersistentFile", before checking.

The difficulty is knowing if the data from the previous filter has  
changed, since that
cannot be preserved between program instances. I was thinking of  
using a message
digest (hash) for this on the output data of filters, but there may  
be complex issues with
that I have not considered.

-- chris.

>
>
> -- 
> Gaëtan Lehmann
> Biologie du Développement et de la Reproduction
> INRA de Jouy-en-Josas (France)
> tel: +33 1 34 65 29 66    fax: 01 34 65 29 09
> http://voxel.jouy.inra.fr



More information about the Insight-users mailing list