Social computation: Fundamental limits and efficient algorithms