Candidates for SME validation partners
Okay, looking over these, and putting together a story for the EU, that story tends to look more and more a bit like this:
"the EU economy is populated with SMEs who specialize in one narrow field. Individually, such companies have modest sales, but adding up across all such small specialty companies, the true engine of the EU economy is revealed. These SMEs share the same plight, severe constraints on: manpower, budget, and time. A large percentage of them will receive benefit from utilizing parallel computation, making them more competitive and so moving the economy forward, and providing scientific and health advancements to the EU. That is, if they were enabled to harness such computation, even in the common form of GPU accelerators, or Cloud servers. But those constraints on their manpower, budget, and time prevent them from undertaking the resource hungry process of developing code for parallel execution. The benefits are there, they can see them, but they are blocked by the difficulties of parallel code development, the higher cost of such development, and the lack of programmers skilled in such parallel execution techniques. We have assembled a diverse set of archetypal SMEs who typify this story. Individually, they have modest impacts by themselves, but each embodies the key characteristics of: highly specialized, small market, will benefit from parallel execution but are blocked by constrained resources. Success with these few indicates the viability of success with all such small, highly specialized, SMEs from across Europe."
The SME must typify the above story, and also:
- give confidence that they can deliver working code of the application that they propose
- work well with the partners, as a team
The list of candidates
- plasma physics -- "In 2013 we performed a market analysis regarding the simulation of rarefied plasma flows. Since the required knowledge and resources are extremely high, no proper solution exists, despite the fact that in the EU R&D companies spend at least 1 billion € per year for advancing their low pressure plasma processes." -- they fit the profile from the story above, highly specialized, too small to have resources to develop parallel code, yet high benefit if could. The processing looks like a good candidate for polyhedral techniques and the DKU pattern, two tools in our toolbag. See two langlets, one covers regular grid simulations, the other covers a system that employs multiple computational "entities" that interact (this captures the interaction between their 3 levels of solver).
- Earth Observation satellite image processing -- "software that’s processing Landsat data collected over the UK, includes correction for atmosphere effects, cloud identification (including shadows), products such a vegetation indices" -- seems to be a hot topic, climate, with direct EU citizen benefit, fits the story above, and has high processing. They don't touch parallel processing, but would get high benefit and wish they could.
- Geo Imaging -- "Dealing with high resolution images such as X-rays, Intravascular Ultrasound (IVUS) images, satellite images etc., has led us to parallel programming, a challenging task considering the fact that the programmer needs to re-learn to implement even the basic code." they represent the case of an SME that is trying, hard, to do parallel programming, but resources constrain them. Portability across hardware constrains them. We solve that. The processing also looks like a good candidate for polyhedral and DKU.
- Ocean dynamics -- "simulates the ocean physical dynamics and the marine ecosystem, from physics to fish" -- feels like a hot topic. Has high computation demands. It's just that it's a tiny market (10 customers!)
- Personalized Medicine -- gene sequencing for personalized medicine -- requires multiple machines to handle amount of data, for fast processing -- reducing processing time down from weeks to hours will make it practical.
- FlexTiles Hardware -- hardware partner -- have hardware that matches the ICT-4 call, with a toolchain above it. This represents a chance to show that Langlets can port even onto radically different hardware. Such a result has the potential to encourage development of radical hardware designs, by providing a "transparency" proof of existence -- application code that runs on other hardware will in turn run modification-free on a new, radical, chip architecture. This could be the seed that grows into something very big (10x increase in throughput, at 10x reduction in power, due to cutting out "programming paradigm helper" hardware like coherent caches and out of order pipelines)
- Machine Learning -- academic, rather than an SME -- but machine learning is a white-hot field -- they would develop the innards of the Langlet, supply algorithms and implement on the various hardware platforms.
- Operations Optimization -- predictive modelling and optimization -- seeing two or three Langlets, one has notion of a "system" or "Process", and elements plug in, so that the code reflects the process diagrams used to document -- another langlet would embody optimization, with a cookbook of approaches that end-user's code plugs into (the plugged-in code runs in parallel, dispatched automatically, the user follows simple rules to make the code safe for distributed execution) -- the story is that this represents just one of the many small specialized areas, so if a Langlet succeeds here, it demonstrates the potential for the approach to succeed in any such small specialized area.
- Work Orders Saas -- Seeing a DSL for event-driven systems, where sources emit events, and sinks consume them, then possibly emit new ones -- This is close to "inversion of control" -- the Langlet has the notion of a "system", of "event source", and "event sink", plus "custom type". Users populate the system with sinks and sources. A sink has a dispatcher that looks inside an event for its type, and calls user supplied function associated to that event type. Source uses Langlet's create-event and emit-event. Sinks register their interest in events. The goal is to make this efficient on many types of hardware (distributed as well as rack of servers).. The parallelism is all inside the Langlet, users follow simple rules about their variables. The sell is that such a pattern is common (do research to get estimate of how many apps), and this is a typical application, so langlet will have large impact. This SME demonstrates Langlets in a distributed setting, for Web and Cloud based Saas.
- Geo-spatial -- Didn't get enough detail to have a handle on approach -- they are consortium of open source for "geo-spatial domain". Said would answer questions later, haven't gotten back to me. Mention "R", so likely have high computation applications. They have "many" partners, so not clear who will be responsible for delivering results to EU.
- Learning -- Perhaps watch common patterns in an eLearning system, capture some of those (C# based, low computation, low number of events)
- Student to hire on machine learning -- Sent email, and may be a good hire once the project ramps up