Assuming i have a working facial recognition algorithm working for the iphone (comparison images would be stored on my machine). How can i expand this to compare image 'A' against images stored on a remote server?

Could someone give me an abstract definition? (I could download and temporarily store all images on my iphone, and then compare them against image 'A' however if i have hundreds of photos then it will take too long to process and be useless..).

What is the input to your comparison algorithm, is it the subwindow containing the face detection? You could, just like peterept said, upload THAT smaller subwindow containing the face to the server and let the server do the work. If your input to the comparison algorithm is a set of features extracted from the face (statistics, etc.), then if it doesn't take too much CPU power to process the subwindow, you could extract those features on the phone and send them to the server for processing.

The main idea here is that you let the remote server do all the crunching, even if it is hundreds of photos (will still be faster than the phone, especially if you multithread). Then the trade-off is between sending the subwindow image or the feature set extracted from that subwindow, whichever's smaller to send.