Spending some time on NIP.NET

It’s been a while since I touched my NIP.NET work. NIP was originally developed in C++ as part of my PhD research with Prof. Paul Watson. It is a parallel runtime for shared- and distributed-memory multiprocessors. It implements an extension to the original Lazy Task Creation technique1, load balancing, and an object-based Distributed Shared Memory with some novel ideas on caching and locking. There are some papers available. NIP is also used as the target runtime environment of the HiPPO visual programming language.

I always wanted to port NIP on .NET and evolve it by adding more functionality. Due the object-based shared memory abstraction, the original version suffered by great overheads due to the expensive lock primitives used. In .NET, locking is done at the user-level so it’s less expensive. Furthermore, a feature that we always wanted to add was distributed garbage collection. So, towards the end of 2002 I started the port. It only took me about a week or so to rewrite most of the code using C#. Unfortunately, I got involved with other things so I didn’t complete it and it was only until last summer when I found some time to finish the implementation: fast DSM object locking, an optimised entry consistency model for introducing sequential consistency semantics, distributed object garbage collection, lazy task creation, etc. Cool stuff. I even wrote some unit tests. However, once I started testing multiple node scenarios, I discovered that under certain circumstances there was a deadlock but I didn’t have time to investigate. I think this weekend I am going to spend few hours on fixing the problem(s). I need a break from the Grid stuff. It should be fun.


1

Mohr, E., D.A. Kranz, and R.H.J. Halstead, Lazy Task Creation: A Technique for Increasing the Granularity of Parallel Programs. IEEE Transactions on Parallel and Distributed Systems, 1991. 2(3): p.264-280.

Recent Posts

BrainExpanded – The Timeline

See "BrainExpanded - Introduction" for context on this post. Notes and links Over the years,…

2 days ago

BrainExpanded – Introduction

This is the first post, in what I think is going to be a series,…

2 days ago

Digital twin follow up

Back in February, I shared the results of some initial experimentation with a digital twin.…

1 week ago

Digital Twin (my playground)

I am embarking on a side project that involves memory and multimodal understanding for an…

10 months ago

“This is exactly what LLMs are made for”

I was in Toronto, Canada. I'm on the flight back home now. The trip was…

1 year ago

AI is enhancing me

AI as an enhancer of human abilities.

1 year ago