Wednesday, May 19, 2010

Moved

[Please Note: This blog is no longer updated. Please visit www.cattywumpus.in for updated articles.]

Wednesday, January 21, 2009

My Faves for Tuesday, January 20, 2009

It seems that we are having more and more Multicore Moments these days. With clusters and clouds everywhere we find ourselves with almost more porridge than we can eat. The operative word being almost. This "thinking in parallel" thing has turned out to be both treacherous and addictive at the same time.

[tags: palgos, parallelism, multicore]

See the rest of my Faves at Faves

Monday, December 29, 2008

My Faves for Sunday, December 28, 2008

Quoted: October 24, 2007 lecture by Steve Omohundro for the Stanford University Computer Systems Colloquium (EE 380). Steve presents fundamental principles that underlie the operation of "self-improving systems"

[tags: ai, palgos, osequal, software, computing]

Since my early youth I have been following two great goals in my life. One is to work on the physical ``Theory of Everything'', which motivated me to do my BSc and PhD in Theoretical Particle Physics. The other is Artificial Intelligence, which motivated me to do my BSc & MSc & Habilitation in Theoretical Computer Science.

Quoted: Homepage of Marcus Hutter containing Publications, Curriculum Vitae and related topics

[tags: research, information, algorithms, osequal, palgos]

Good reference on research related topics. Finding a Topic and Beginning Research

[tags: research, palgos]

See the rest of my Faves at Faves

Saturday, December 27, 2008

My Faves for Friday, December 26, 2008

Constraint Solving Problems and links to Solvers.

[tags: ai, optimization, csp, palgos]

Jena is an Description Logic library.

Quoted: This section of the documentation describes the current support for inference available within Jena2.

[tags: ai, owl, java, semanticweb, palgos]

Check out the paper Towards the Simulation of E-commerce by Herbert Schlangemann, which is available in the IEEEXplor database (full article available only to IEEE members).

[tags: funny, turingtest, research, palgos, osequal]

See the rest of my Faves at Faves

Saturday, December 20, 2008

Crackpot

In our lab, we are building a real-time planning system in C++, called Crackpot. A planning system can reason about which set of actions need to be taken in order to achieve specified goals. For example, if a robot Wall-e is asked to fetch a drink from the local store, it must internally generate a plan to reach the store, buy the drink and then return back home.

In our related games lab, Crackpot will be used in a story planning project. It will serve as an engine to automatically develop plans or "recipes" for story content generation, with the goal to optimize player experience.

Crackpot is a general (the technical term is domain-independent), real-time, dynamic planning system. Being general, it can be used for automated planning across diverse applications.

Crackpot is a public domain, open source software. See https://sourceforge.net/projects/crackpot/. See also my blog on Crackpot.

Friday, December 19, 2008

A Guide for New Graduate Students in NUS

[Please Note: This article has been moved to a new place. This blog is no longer updated. Please visit www.cattywumpus.in for updated articles.]
 
This entry is an excuse for lack of a good collaborative site. I will update this entry as needed.

How to Select Courses

I consulted with my supervisor about the courses. I am in ECE and my department allowed me to take any number of courses from other faculties. I took several courses (see my courses here) from SoC (School of Computing) as they were more relevant to me. Modules from ECE, Maths, Comp, ISE and Stat. Other courses can be found from the list of all faculties.

Typically you get a week at the start of the semester to decide on your courses. In the first week you can visit the course, talk with the lecturer and by the end of week can decide on the course. During the first week, there is also a second-hand book buying/selling program (library has a huge collection of books, but usually there is only 1-2 copies of a book). You can also use the "Used Textbook Forum" in Ivle Student Workspace, but this forum is dominated by undergrads (as many other things in NUS).

Seminars and Talks
I was interested in AI Planning-related SoC talks. I found out that there is a mailing list of COMP seminars. I subscribed to it at seminar-l at comp.nus.edu.sg (you can subscribe by sending a mail to 'seminar-l-request@comp.nus.edu.sg' with subject 'subscribe'). I can submit my attendance to these seminars as well as part of my module requirement on seminars in my department. Similarly I subscribed to mailing lists of other faculties (sent them an email) I was interested in.

Conferences and Workshops
After, say 6 months-1 year, your advisor may ask you to prepare for a workshop/conference. Searching for good conferences/workshops in your area may be tricky at the start. There are some conference lists like allconferences.com, but usually you have to look at more than one sites to find good conferences of your choice. Some profs maintain conf list on their websites, which is quite useful. Also beware of some conferences of poor quality: they have a wide subject cover (little focus) and will publish all papers they receive.

Searching
Search plays an important role in research. Apart from Google, I use Google Scholar. As a NUS student, I can access IEEE, Springer etc via the library gateway. To keep up to date with the current research, it is useful to subscribe to mailing lists in your area - ask your supervisor if there are any. As for me, I am subscribed to:

http://groups.google.com/group/search-list?hl=en
http://www.euro-online.org/eume/
http://www.jair.org/

among others.

Housing/Accommodation
A guide for graduate students in Singapore would be incomplete without the topic of housing. Housing is tricky in Singapore, so read on.

Most houses available for rent in Singapore have 3-4 rooms. Therefore, usually singles (and even married couples) share a house. The common terminology is "Master room" means a room with attached toilet and bathroom and a "Common Room" has a shared toilet and bathroom. Cost for a master room would be 700-1200 SGD per month, common room would be lesser. Separate houses (1+1 -- the trend/law is that the house owner locks one or more rooms of the house, for example lock one room of 2+1 will leave 1+1 available to rent) are 0.9K-1.5K or even more, depending on location.

A map of NUS is quite useful at the start (see for example the campusmap). The close-by areas to NUS are Clementi, Dover, Commonwealth, Jurong East, Jurong West (also called Boon Lay) and Pandan Gardens. There are usually direct buses from these places to some parts of NUS (there are many routes on the various sides of NUS -- Pasir Panjang Road, Clementi Road, AYE -- see this link). You will need Ezlink card to travel on these buses (you can get Ezlink card on any MRT station -- Ezlink card is also used within MRT). Within NUS you can travel using the Internal Shuttle Buses (ISB) named A1, A2, B, C, D -- these are free buses.

Finding accommodation can be a little tricky with agents involved. The agents ask for a commission of 1 month rent for up to 1 yr contract and 2 month rent for a 2 yr contract. Be careful that you trust the house owner (check with other tenants for example), otherwise there are cases where owners are not very friendly.

A good site to find accommodation is sg-house.com. There is also an internal NUS site for accommodation for NUS students. This internal site has houses close to NUS. Further, there are usually some pamphlets about rent at bus stops near Central Library and opposite to it.

Would welcome your comments.

Saturday, November 29, 2008

PhD Quotes for the Better

[NOTE: There will be no more updates to this blog. New updates will go to http://sites.google.com/site/amitkumar0480/blog/phdquotes]


Computing

This is the first numerical problem I ever did. It demonstrates the power of computers:
Enter lots of data on calorie and nutritive content of foods. Instruct the thing to maximize a function describing nutritive content, with a minimum level of each component, for fixed caloric content. The results are that one should eat each day:
1/2 chicken
1 egg
1 glass of skim milk
27 heads of lettuce.
--Rev. Adrian Melott

Ideas

A new idea is delicate. It can be killed by a sneer or a yawn. It can be stabbed to death by a quip and worried to death by a right man’s brow
– a businessman Charles Brower

Expertise

Specialization is for insects (link).
- Robert A. Heinlein

In the beginner’s mind there are many possibilities, but in the expert’s mind there are few.
--Shunryu Suzuki

If you meet on the way a man who knows, Don't speak a word, -don't keep silent!
--ZEN SAYING

If science were explained to the average person in a way that is accessible
and exciting, there would be no room for pseudoscience. But there is a kind
of Gresham's Law by which in popular culture the bad science drives out the
good. And for this I think we have to blame, first, the scientific community
ourselves for not doing a better job of popularizing science, and second, the
media, which are in this respect almost uniformly dreadful. Every newspaper
in America has a daily astrology column. How many have even a weekly
astronomy column? And I believe it is also the fault of the educational
system. We do not teach how to think. This is a very serious failure that
may even, in a world rigged with 60,000 nuclear weapons, compromise the human future.
-- Carl Sagan, The Burden Of Skepticism, The Skeptical Inquirer, Vol. 12, Fall 87

Personal

Fundamentally the marksman aims at himself.
--ZEN IN THE ART OF ARCHERY

Great Faith. Great Doubt. Great Effort. - The three qualities necessary for training.

Water which is too pure has no fish.
-- Ts’ai Ken T’an

Do or do not.. there is no try..
--Yoda Jedi Master

"Love many things for therein lies the true strength, whosoever loves much performs much and can accomplish much, and what is done in love is done well."
--Vincent Van Gogh

The condition of all who are preoccupied is wretched, but most wretched is the condition of those who labour at preoccupations that are not even their own, who regulate their sleep by that of another, their walk by the pace of another, who are under orders in case of the freest things in the world—loving and hating. If these wish to know how short their life is, let them reflect how small a part of it is their own.

--Seneca


It takes a great deal of bravery to stand up to our enemies, but just as much to stand up to our friends. 
-- J K Rowlings

"Experience is not what happens to you; it's what you do with what happens to you."
-- Aldous Huxley

 The test of a first-rate intelligence is the ability to hold two opposed ideas in the mind at the same time, and still retain the ability to function. One should, for example, be able to see that things are hopeless and yet be determined to make them otherwise. 
 
Reality
, Time, Truth

As long as you seek for something, you will get the shadow of reality and not reality itself.
--Shunryu Suzuki

'If you want truth', Nasrudin told a group of Seekers who had come to hear his teachings, 'you will have to pay for it.' 'But why should you have to pay for something like truth?' asked one of the company. 'Have you noticed', said Nasrudin, 'that it is the scarcity of a thing which determines its value?'
--From The Pleasantries of the Incredible Mulla Nasrudin © 1983 by The Estate of Idries Shah

Everything is in a state of flux, including the status quo.
- Robert Bryne

One cannot step twice into the same river.
--HERAKLEITOS

Do not believe in anything simply because you have heard it. Do not believe in anything simply because it is spoken and rumored by many. Do not believe in anything because it is found written in your religious books. Do not believe in anything merely on the authority of your teachers and elders. Do not believe in traditions because they have been handed down for many generations. But after observation and analysis, when you find anything that agrees with reason and in conducive to the good and benefit of one and all, then accept it and live up to it.
--Siddhartha Gautama (The Buddha), 562-483 B.C.

Focusing your life solely on making a buck shows a certain poverty of ambition. It asks too little of yourself.
--Barack Obama


Do not mistake understanding for realization, and do not mistake realization for liberation --Tibetan Saying.

"In the high country of the mind one has to become adjusted to the thinner air of uncertainty..."
Robert M. Pirsig

Change

If you want to make enemies, try to change something.
-- Woodrow Wilson

If you don't like how things are, change it! You're not a tree.
-- Jim Rohn

If you don't go after what you want, you'll never have it. If you don't ask, the answer is always no. If you don't step forward, you're always in the same place.
-- Nora Roberts

Democracy

Man's capacity for justice makes democracy possible, but man's inclination to injustice makes democracy necessary.
--Reinhold Niebuhr, theologian(1892-1971)

Planning

"Who really can face the future? All you can do is project from the past, even when the past shows that such projections are often wrong. And who really can forget the past? What else is there to know?" - Robert M. Pirsig


Monday, November 10, 2008

Talk Review: A Pictorial Introduction to Separation Logic

Dr. Tony Hoare is a clear and precise speaker. Attending his talk is a great experience.

In this talk, the speaker talks about a new logic that unifies the concepts of pointers, concurrency, weak memory and communication. The speaker starts by defining four degrees of separation between two program traces: 1) they are disjoint traces 2) one is sequentially after another 3) both of the traces can be executed in parallel 4) both the traces are mutually exclusive - they cannot happen together.

It is then seen that 4) => 3) => 2) => 1) - that is, the relation 3) holds whenever 4) holds, 2) holds whenever 3) holds and so on.

"Hoare triples" are then introduced. These are related to the concept that post-condition are true when precondition and invariant of a program are true. The triples can be composed in interesting manners.

Though I did not understand much of what follows because of these results, through google search it seems that these results are useful in proving program correctness. The next day Dr. Hoare presented a topic related to program correctness in another conference.

Presentation slides are here (only about half could be covered in his talk). Further reading keywords: Galois Connections (pdf, pdf), Category Theory, Event Algebra.

Wednesday, October 29, 2008

My Faves for Tuesday, October 28, 2008

AI Planning Systems and Testbeds

[tags: ai, palgos, software, resources]

PLINQ is a query execution engine that accepts any LINQ-to-Objects or LINQ-to-XML query and automatically utilizes multiple processors or cores for execution when they are ...

[tags: parallel, palgos, software]

Microsoft Solver Foundation is a brand new framework and managed code runtime for mathematical programming, modeling, and optimization. It is designed to run on NETfx 3.5+ and is completely implemented in C#. Solver Foundation is useable from all CLS-compliant languages, including F#, IronPython, VB.NET and C++. It is also available via a visual, Add-in Designer for Excel 2007 users. Solver Foundation provides solvers and services to a broad community of users: from Excel users and analysts to programmers working on business critical scheduling, configuration, risk management, and planning solutions. It provides services for model checking, parallel solving and workload scheduling, model interchange, and declarative data binding via LINQ and other NETFx technologies. As an open framework designed for third party extensibility, it exposes facilities for users to plug-in their own solvers while still leveraging all of the modeling services and capabilities of Solver Foundation.

[tags: software, resources, research, palgos]

See the rest of my Faves at Faves

Sunday, October 26, 2008

My Faves for Saturday, October 25, 2008

Computer scientists at Stanford University have developed an artificial intelligence system that lets robotic helicopters teach themselves to fly difficult stunts by watching other helicopters

[tags: ai, palgos, robotics]

See the rest of my Faves at Faves

Saturday, October 25, 2008

Course on Introduction to Statistics - ST5201

Statistics is probably the most useful course I did as part of my PhD coursework. Statistics is widely applicable to understanding real world information, testing scientific hypothesis, forming models from observed data and so on. Being intrinsic part of the scientific method, it is used in economics, computational search, random algorithms and so on.

In this course, we learnt the techniques of fitting parameters into observed data, and testing hypotheses (method of moments, maximum likelihood estimate and bootstrap methods). Distributions related to normal distribution play an important role in estimating parameters and their variance from actual value.

Our textbook: Mathematical Statistics and Data Analysis (Statistics) by John A. Rice. The book is very well-written and understandable. Technical aspects are "smoothed out" and made accessible and useful to more general audience. Cramster has several solutions to problems from the book. Here is the errata list from the book.

Other Resources

Another course on statistics is here. Read the comments on hypothesis testing here. Lectures on Decision Theory and Bayesian Inference.

SPSS and SAS are widely used statistical packages. Another free statistical tool is the GNU-S, also know as R. An R-tutorial is here.

Thursday, October 23, 2008

My Faves for Wednesday, October 22, 2008

Lecture Series on Artificial Intelligence by Prof. P. Dasgupta, Department of Computer Science & Engineering, I.I.T,kharagpur.

[tags: ai, palgos, osequal, resources]

See the rest of my Faves at Faves

Wednesday, October 22, 2008

Course on The Art of Doing Research - CS6281

In this course, we discussed and practised presentation skills (its usually better to emphasize on one aspect more and more, rather than try to cover all aspects of your work), writing research proposals (should be able to show impact and make a convincing argument that we will be able to make the impact), writing paper well (everything that you write should be backed with clear argument), paper organization (introduction should contain all major aspects of the paper, as if it will be the only thing read by most readers) and identifying sources of ideas of a few papers, and other research related topics.

We also read and discussed several papers related to artificial intelligence - first in context of solving one problem of motion planning, and then several individual topics. The aim of reading the papers was not the technical aspects, but the relationship between ideas, what is new in the paper, what is good and bad about the papers and so on. For example, in the research done in motion planning, we read papers on:

- Devising framework that simplifies the problem.
- Uniform sampling for computational efficiency and approximation
- More intelligent sampling
- Computational efficiency of collision detection
- Different approach of sampling: Sensing and utility
- Another approach of sampling: lazy sampling

This gave an overview of how researchers till now approached the problems, and what novel was contributed by the later papers (when many aspects of the problem were already solved).

Sunday, October 19, 2008

Talk Review: Internet Pioneer Vinton Cerf

Vincent Cerf talks about the future of internet and the world.

1. India and China will have very large internet population and economies by 2035. Fresh water and energy would be more precious than today.

2. Collaboration on the internet creates many new opportunities - like early discovery of epidemics using medical queries made by people on the internet. Real time data will be much more useful and available.

3. People will travel a lot less for office and virtual interactions will be much more real.

4. Much more kinds of devices and individual contributions are enabled by the internet. Devices will be more intelligent.

5. Much more efficient and managable computers will be used in cloud computing. Processes can have unique identifiers which enables them to transfer from one computer to another.

6. Work on interplanetary internet using new protocols is in its initial phase.

Friday, October 17, 2008

My Faves for Thursday, October 16, 2008

Course - Sublinear Algorithms - Only a small portion of the input data is read in such algorithms.

[tags: algorithms, palgos, resources]

Library of problems in OR.

[tags: programming, scheduling, research, palgos]

See the rest of my Faves at Faves

Wednesday, August 13, 2008

Presentation Review: How the Computational Perspective is Transforming the Sciences

Occasionally I will review interesting talks and papers.

In this talk, Papadimitriou speaks about how computational aspects of sciences have influenced the sciences and are leading to several important results. He touches upon several sciences: quantum physics, statistical mechanics, biological systems, game theory, social networks, economics and brain as he explains how they are deeply interacting with computer science.

Quantum computers can be used to solve problems which otherwise take an exponential amount of time. However, the existing quantum computer experiments work for small number of particles (~6), which translates to quantum algorithms succeeding only for small inputs. As of now, it is unclear whether quantum computers can be built for large inputs. This is a question of testing the theory of Quantum Physics. As Umesh Vazirani says "Quantum computation is as much about testing Quantum Physics as it is about building powerful computers".

In statistical mechanics, when parameters of local interactions evolve, macroscopic properties
change dramatically, and we have a phase transition (melting of solid into liquid is an example). In computer science, certain randomized algorithms are known to converge exponentially faster when the parameters are in the right range. A deep fact is that two phenomena are indeed the same. The same phenomena also occur/used in coding theory and artificial intelligence, as this reference explains.

Then Papadimitriou moves on to explore the relation between biological systems and computer science. One example he shows is a 2006 paper "An optimal brain can be composed of conflicting agents" in which the authors find that "under natural physiological limitations, an optimal decision-making system can involve ‘selfish’ agents that are in conflict with one another, even though the system is designed for a single purpose." This result is on common ground between artificial intelligence multi-agent systems and theory of evolution in biology.

The next biology example is related to Charles Darwin's statement "To think that the eye could evolve by natural selection seems, I freely confess, absurd to the highest degree” considering that such an evolution might be highly improbable. Leslie Valiant in a recent paper "Evolvability" suggests a theory to "explain quantitatively which mechanisms can evolve in realistic population sizes within realistic time periods, and which are too complex. If evolution merely performed a random search it would require exponential time, much too long to explain the complexity of existing biological structures." Natural selection has been used for decades in solving large search problems in artificial intelligence and computer science.

The third biology example involves population selection processes used in search in artificial intelligence and computer science (also on the lines of Darwin's theory of selection). Simulated annealing and genetic algorithms are widely used search methods. In these methods search is carried out by a population of search "threads" - and these threads evolve through a selection process in each "generation" of threads. Simulated annealing is akin to asexual reproduction. Genetic algorithms are akin to sexual reproduction. Simulated annealing works so much better than genetic algorithms in solving optimization problems. Why is that? As per a recent paper "Genetic Modularity" by Livnat and Papadimitriou (yet to be published), sex favors variance over optimization. This also means sex favors creation of new species.

Internet is a large system that was never designed and its study is akin to the study of natural processes and social science. In game theory, Nash and other proved the existence of equilibria, which are predictions of behavior. Computing equilibria can be used to predict the stock market, for example. A recent result (paper here) says that computing a Nash equilibrium is an intractable problem.

In social networks, recent results (paper) show that "it is a small world". That is, most people are within a few "hops" or connections from you. This result follows from maths developed for study of internet viz how many routers does a packet have to traverse to reach its destination.

Link to the original presentation.

Tuesday, July 29, 2008

Challenges in Parallel Computing

This article is a draft, and likely to be updated a lot soon.

Parallel Programming is not constrained to just the problem of selection of whether to code using threads, message passing or some other tool. Having said that, I would tend to apply the 80-20 rule to deduce that most junior programmers and most high level applications would need to consider only this issue. But in general, all the members of the software team must participate in parallelization and must consider the overall picture containing a plethora of issues:
  1. Understanding the hardware: An understanding of the parallel computer architecture is necessary for efficient mapping and distribution of computational tasks. A simplified classification of parallel architectures is UMA/NUMA and distributed systems. A typical application may have to run on a combination of these architectures.
  2. Mapping and distribution on to the hardware: Mapping and distribution of both computational tasks on processors and of data onto memory elements must be considered. The whole application must be divided into components and subcomponents and then these components and subcomponents distributed on the hardware. The distribution may be static or dynamic.
  3. Concurrency Implementation using Threading and Shared Memory/Message Passing/something else: Different kinds of concurrency implementation may be useful for different applications and different levels of software and hardware. A small fine grained software component running within a single die may be implemented using threading and shared memory for high performance, while message passing may be used in cases performance is not an issue or the computations are run on physically distributed computers.
  4. Infrastructure level: A library of concurrent data structures having a well defined interface. This library obviously has to be based on the kind of concurrency implementation.
  5. ... still to do (I am sure there are more things)
In summary, I consider the following as important lessons while parallelization:
  • This is an important issue since it is a new way of programming and the whole team and hierarchy must be concerned.
  • There is no kill-all-birds gun. All parallelization tools and methods are different shades, and useful in different situations.
  • It would be useful to simplify the implementation as much as possible. For example simpler to use tools (simpler to debug, implement and reason about) must be preferred in case performance is not important.

Monday, April 28, 2008

Course on Real Time Systems - EE5903

Real Time Systems (RTS) are the systems that must respond to changes in environment within a specific interval of time. The course on RTS was an interesting but rather heavy, with a relatively large project, covering several topics and reading research papers. Some concepts I find one of most difficult in computer science like synchronization and mutual exclusion were a part of it.

The following major topics were covered:
  • Process Management, Synchronization, Concurrency (handout from Operating System Principles by Bic and Shaw)
  • Distributed RTS, Deadlock Management, Distributed Deadlocks (papers on HARTS, Token Passing for mutual exclusion)
  • RTS scheduling (paper on Rate Monotonic Scheduling by Lui and Layland), RT Operating System Kernel (paper on Spring Architecture)
  • RTS system development diagramming - DARTS, UML statechart (paper on Software Design by Gomaa)
We did a distributed game design and development project. In design phase, we reviewed several architectures for LAN based game development (see the report here). We then designed a flexible client-server load architecture. We implemented a prototype for this architecture in the second part of the project (see the report here).

Some ideas for future work:
  • Development of a flexible-load distributed game by continuing the work done in project.
  • Multithreading the Box2D library - this is an open source physics library we used in our project.

Course on Knowledge Based Systems - CS4244

This course taught about rule based systems. We used the CLIPS language to implement rules,. CLIPS automatically combines rules to perform a complex task. The course content topics included knowledge representation, knowledge acquisition, representing uncertainty including DS-theory, Classification and Construction Problem Solving, and basics of other kinds of knowledge based systems like Blackboard Systems, Case Based Reasoning, Machine Learning (ID3, Candidate Elimination) and Truth Maintenance Systems.

We encountered the following systems: STRIPS (planner), MYCIN (medical diagnosis rule based system), EMYCIN (empty mycin), R1/XCON (configuration of computer systems), CENTAUR (explanation system), MOLGEN (genetic experiment planner).

Book we followed: Engrossing book by Peter Jackson: "Introduction to Expert Systems"

We did a project on "Weekend Itinerary Planning". Here is the report. The planner had the following major components: itinerary generation, event selection, travel selection and user interface.

From this course, I generated two ideas for "good things to have":
  1. An Itinerary Planner for Weekend Travel (not just a toy project but on WWW);
  2. A Rule Based Library in C++/Java based on CLIPS engine - with one use in Computer Gaming.
See also:
  1. Peter Jackson's Expert Systems reading list
  2. Another course in a related field

Tuesday, February 19, 2008

Courses I did

* Combinatorial and Graph Algorithms This course covered basic data structures and algorithms mainly from Cormen's book like Fibonacci Heaps, Matching, Network Flows, and some heuristics like KL, Simulated Annealing. Also NP-Completeness, Approximation Algorithms. Unfortunately most real world problems do not seem to have efficient algorithms but one must rely on heuristics.

* Advanced Computer Architecture This course taught Flynn's taxonomy, speedup, pipelining, caching and bus. In the project got some experience of coding with Cell Broadband.

* Knowledge Based Systems This course covered Rule Based Systems, declarative programming, representing uncertainty, knowledge representation, knowledge acquisition, design for explanation, and basics of blackboard architectures, case based reasoning and truth maintenance. We did project on Weekend Itinerary Planning. More ...

* Real Time Systems Diagramming, Real Time Scheduling, Synchronization, Deadlock Management and Distributed Real Time Systems. More ...

* Introduction to Statistics Probability, Random Variables, Expected Values, Distribution related to normal distribution, limit theorems, estimation of parameters, hypothesis testing. More ...

* The Art of Doing Research Making good presentations, relations between research papers, writing research plan, writing research paper well. More ...

Saturday, January 19, 2008

An Essential Note on Parallel Programming

Newer machines will not execute the conventional applications faster. This means the programmers' free lunch is over. Programmers will need to change their ways - and this change is revolutionary rather than evolutionary - sequential programming which has been the most popular way to program may not scale in the future and has to be replaced by much more complex parallel programming. There is a possibility of an impending crisis in computing industry if the industry does not in time embrace parallel scalable programming.

See Essay by Dave Patterson: Parallel or Bust: Computing at a Crossroads for more. Follow up with View from Berkeley. A news article: Intel and Microsoft donate $20 Million to Two Universities for Multicore Research. Here is a presentation by David Patterson on What Future Apps May Be, How Research and Industry Can Work Together on Multicore Research and What is Possible.