1. A computer-implemented method of searching a plurality of queries against at least one database containing a plurality of records, comprising: a. partitioning the plurality of queries into a set of smaller subsets of queries; b. partitioning the at least one database into a set of smaller subdatabases; c. designating searching tasks to be performed by associating each of said subsets of queries with one or more of said subdatabases, assigning each searching task to one of a group of computers operating in parallel, wherein each member of the group of computers operating in parallel has at least one searching task assigned thereto, and executing at least some of the assigned searching tasks using the group of computers operating in parallel; and d. collecting search results from the executed searching tasks and generating a unified search result in accordance with the collected search results; wherein the partitioning of the queries and the partitioning of the database are done by one or more members of the group of computers operating in parallel; and wherein c further comprises dividing at least one of the searching tasks into two or more smaller searching tasks, and designating the two or more smaller tasks as related tasks on a virtual shared memory bulletin board.